gpt4 book ai didi

php - SQL 检查行中是否有空列 - 比较它们

转载 作者:行者123 更新时间:2023-11-29 18:16:56 25 4
gpt4 key购买 nike

我想要一个包含内容的列的列表。所以我尝试一下。我将检查数据库中的每个字段,找出其中哪些字段没有内容。

$arrAllField 是可用字段的列表

$strTable 是我查看的表格

    foreach ($arrAllField as $arrField)
{
$Result = $this->Database->prepare("SELECT * FROM ".$strTable." WHERE ".$arrField." <> '' AND ".$arrField." IS NOT NULL ")->execute();
while($Result->next())
{
$arrAllowedField[$arrField] = $arrField;
}
}

好的,但问题是,我需要比较它们,这样我只能返回所有行都包含内容的列。

也许有更好的方法可以直接通过 SQL 实现此目的,例如查看表并仅获取所有条目(行)包含内容的列。

最诚挚的问候

彼得

最佳答案

您可以尝试以下方法:检查表的总记录数是否与您所说的该列的值具有某些内容的记录数相同。这样,您的查询将如下所示:

foreach ($arrAllField as $arrField) {
$query = "SELECT (SELECT count($arrField) FROM `$strTable`) = (SELECT count($arrField) FROM `$strTable` WHERE $arrField <> '' AND $arrField IS NOT NULL) AS has_content";
//Perform the query and process the result.
}

执行时,上面的查询将返回一个名为“has_content”的列,如果列 $arrField 则值为 1具有包含内容的所有记录,或者如果列 $arrField 的某些记录则为 0没有内容。然后,您可以通过检查 has_content 的值以您喜欢的方式处理查询结果。专栏。

如果您想一次检索所有信息,而不是执行多个查询并处理它们,只需创建一个包含子查询的数组并将它们连接成一个大数组,如下所示:

$columnQueries = array();
foreach ($arrAllField as $arrField) {
array_push($columnQueries, "(SELECT count($arrField) FROM `$strTable`) = (SELECT count($arrField) FROM `$strTable` WHERE $arrField <> '' AND $arrField IS NOT NULL) AS " . $arrField . "_has_content");
}
$finalQuery = "SELECT " . implode(", ", $columnQueries);
//Perform the $finalQuery and process the result.

这将返回一行,其中包含 $arrAllField 中的列与“_has_content”连接。每列的值遵循我之前提到的相同逻辑。

希望这对您有帮助。

祝你好运。

关于php - SQL 检查行中是否有空列 - 比较它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46938068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com