您好,我正在尝试了解 sql 中的计数,但我什至无法计算某个值在特定列中出现的次数
我的数据库结构是这样的。(表:自然)
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