0
フィールドが多数あるテーブルがあり、フィールドごとにNOT NULLのCOUNTを返す必要があります。テーブルのフィールドごとにフィールドがNULLでないフィールドを選択します。
私は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(<カラムまたは式>)' 'すでにNULL'値を除外します。 http://www.techonthenet.com/postgresql/functions/count.phpを参照して、複数の 'COUNT(...)'を持つ単一の 'SELECT'を持つことができます。 –