こんにちは、SQL の Count について学習しようとしていますが、特定の列に値が何回あるかを数えることさえできません
私のデータベース構造はこれです。(表:ナチュラル)
ID | one | two | three |
1 | 34 | 45 | 80 |
2 | 41 | 34 | 7 |
3 | 7 | 18 | 22 |
4 | 8 | 7 | 45 |
私はこれを試しています
$result=mysql_query("SELECT COUNT(one) AS total FROM natural
WHERE one=7")or die("Error: ".mysql_error());
$data=mysql_fetch_assoc($result);
echo $data['total'];
しかし、カウントに1列しかない場合でも、結果を取得できません..
私が必要とするのは、すべての列で「値」(たとえば7)が何回あるかを数えることです
この例のように、値 7 = 合計 3 (複数の列)
どうすればそのようなSQLを作成できますか。
編集:これを試しています(構文の問題はどこにありますか?)
$result=mysql_query("SELECT COUNT(DISTINCT id) TotalCount FROM tblname WHERE 7 IN (one, two, three)")or die("Error: ".mysql_error());
$data=mysql_fetch_assoc($result);
echo $data['TotalCount'];
あなたの答えに感謝しますが、私の問題は mysql_query () にあると思います。なぜなら、あなたのすべての答えと明らかに私に、常に構文の問題があるからです。
$result=mysql_query("SELECT (SUM(CASE WHEN one = 7 THEN 1 ELSE 0 END) +
SUM(CASE WHEN two = 7 THEN 1 ELSE 0 END) +
SUM(CASE WHEN three = 7 THEN 1 ELSE 0 END)) TotalCount
FROM natural")or die("Error: ".mysql_error());
$data=mysql_fetch_assoc($result);
echo $data['TotalCount'];
この最後のコードを修正するには、 one
and two
...などを使用するだけでnatural
、正しい構文です:D