2014-03-12 63 views
0

最近我一直在努力掌握SQL,我想知道您是否可以解釋如何在COUNT()中使用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) { }

回答

0

我建議您通過閱讀the documentation for COUNT。它包括相當詳細的解釋的例子。

一個例子:

SELECT COUNT(*) FROM pet; 

這也要算在pet表中找到的所有行。您可以在此之後添加WHERE語句以包含特定條件。

+0

所以你的意思是這樣的:' 「SELECT COUNT(*)FROM user_settings其中username ='」。 $ _SESSION ['user']。 「'」'應該工作? – user3352340

+0

是的。該語句將返回用戶名與$ _SESSION ['user']的值相匹配的行數。 –

+0

我剛用一個表格測試了你的代碼,其中有一行用「x」標準,它返回'object(mysqli_result)#3(0){}'所以由於某種原因它不計算行... – user3352340

1

對於 「條件」 COUNT,可以使用一個CASE表達和SUM,例如

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

將計行,其中ColumnABob的數量,但將包括所有行(他們是否有Bob與否)的結果集。

0

事情是這樣的:

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

having子句是可選的。