关于COUNT()的解释

时间:2014-03-12 10:36:12

标签: sql

我最近一直试图获得SQL的掌握,我想知道你是否可以解释如何在WHERE/AND OR中使用COUNT()来返回具有特定行数的行数标准......

或者我正在调查错误的功能? 欢迎任何有用的评论

编辑:继续我正在使用的内容,我有一个简单的SELECT WHERE查询来打印出profileNameprofileIcon我正在使用此作为测试来查看COUNT是否适用于我想要的内容... 然后我想运行COUNT以查看标准中有多少行

$query = $con->query("SELECT * FROM user_settings WHERE Username='" . $_SESSION['user'] . "'");
    while($row = $query->fetch_array()) {
        echo '<tr><th>Current Icon:</th><td><img src="' . $row['ProfileIcon'] . '" /></td></tr>';
        echo '<tr><th>Current Name:</th><td>' . $row['ProfileName'] . '</td></tr>';
    }
$query = $con->query("SELECT SUM(CASE WHEN Username='" . $_SESSION['user'] ."' THEN 1 ELSE 0 END) FROM user_settings");
    var_dump($query);

var_dump生成:object(mysqli_result)#3 (0) { }

3 个答案:

答案 0 :(得分:1)

对于&#34;有条件的&#34; COUNT,您可以使用CASE表达式和SUM,例如

SUM(CASE WHEN ColumnA = 'Bob' THEN 1 ELSE 0 END)

会计算ColumnABob的行数,但会在结果集中包含所有行(无论它们是否有Bob)。

答案 1 :(得分:0)

这样的事情:

select x, count(*)
from y
where x = ? 
group by x
having count(*) > ?
order by x

having子句是可选的。

答案 2 :(得分:0)

我建议您通读the documentation for COUNT。它包含了相当详细解释的例子。

一个例子:

SELECT COUNT(*) FROM pet;

这会计算pet表中找到的所有行。您可以在此之后附加WHERE语句以包含特定条件。