大量編輯,因爲我誤解了問題
如果你想所有的行,你可以只是做:
SELECT * FROM table WHERE (column > 1 AND column <= 15) OR
(column >=18 AND column <= 30) OR
(column >= 35 AND column <= 38)
但是,如果你只是想爲每個計,即不是正確的方式去做。計數可以使用count(*)
直接在MySQL中計算。即使你要做三個單獨的查詢,最好在選擇所有行時使用count(*)
(它使用的內存要少得多)。
雖這麼說,你可以得到計數所有這樣的行:
$query = "SELECT ".
" (SELECT COUNT(*) FROM table WHERE column > 1 AND column <= 15) AS count_1,".
" (SELECT COUNT(*) FROM table WHERE column >= 18 AND column <= 30) AS count_2,".
" (SELECT COUNT(*) FROM table WHERE column >= 35 AND column <= 38) AS count_3";
$res = mysql_query($query);
extract(mysql_fetch_assoc($res));
echo "The counts are $count_1, $count_2, and $count_3";
的extract
功能將一個關聯數組,並設置局部變量數組中的每個項目。我只是覺得它比處理從mysql_fetch_assoc
返回的數組更容易使用。
注意: @ fn-n首先發布SQL,我只是將它格式化爲PHP。我會寫它除了以不同的方式(S?)他已經做了正確的方式:)
我想從表,其中列中獲取的行數分別從1到15,18 30和35 38範圍內,但在一個查詢中 – fxuser 2011-06-15 19:17:27
@fxuser您能否詳細說明「單獨但在一個查詢中」的含義? – 2011-06-15 19:22:13
當我在我的問題上執行3個查詢我得到3個數字例如143,4343和938 ...我如何使這3個查詢一個,並得到相同的結果? – fxuser 2011-06-15 19:32:54