【发布时间】:2016-06-18 16:21:54
【问题描述】:
我有一个包含很多字段的表,我需要为每个字段返回 NOT NULL 的 COUNT。
我在 PHP 中创建一个循环并按字段执行 1 个请求...
$result = array();
$champs = array("field1", "field2", "field3", "field4", "field5", "field6", "field7", "field8", "field9", "field10", "field11", "field12", "field13", "field14", "field15", "field16", "field17", "field18", "field19", "field20");
foreach ($champs as $value) {
$and = empty($filtroAdd) ? "$value IS NOT NULL" : "AND $value IS NOT NULL";
$requete = "SELECT COUNT($value)
FROM my_table
WHERE $filtroAdd $and";
$r = $db->query($requete)->fetch(PDO::FETCH_NUM);
$result[$value] = $r[0];
}
print_r( $result );
我认为这不是更好的方法,我们肯定可以通过单个 postgreSQL 请求返回相同的最终结果?!
感谢您的帮助
【问题讨论】:
-
COUNT(<column_name or expression>)已经排除了NULL值。请参阅 techonthenet.com/postgresql/functions/count.php ,因此您可以拥有一个SELECT和多个COUNT(...)
标签: php sql postgresql