我有一個包含兩列的MySQL表:a和b。 有20個條目在該表MySQL SELECT查詢問題
對於10個條目中,a = 3。對於其它10個條目中,a = 4。
我想選擇的行,使得B = 0,但我只想要一個從羣裏一= 3,一個從A組= 4
的基本查詢會是這樣的:
SELECT * FROM `table_name` WHERE b = 0 AND rest_of_query
我應該rest_of_query是什麼?
我有一個包含兩列的MySQL表:a和b。 有20個條目在該表MySQL SELECT查詢問題
對於10個條目中,a = 3。對於其它10個條目中,a = 4。
我想選擇的行,使得B = 0,但我只想要一個從羣裏一= 3,一個從A組= 4
的基本查詢會是這樣的:
SELECT * FROM `table_name` WHERE b = 0 AND rest_of_query
我應該rest_of_query是什麼?
既然你沒有指定的其他列(如果有的話)任何具體的標準,下面的查詢將提供你想要的。所選的特定行可能是非確定性的。
select * from `table_name` where b=0 group by a;
從我的理解你只有2列,並正在定義他們其中一個shoudld是什麼,然後你希望只有另一列的不同條目。
這可以通過GROUP BY來完成作爲
SELECT a, b FROM table_name WHERE b = 0 GROUP BY a;
UNION查詢應該是這樣的
(SELECT * FROM `table_name` WHERE b=0 AND a=3 LIMIT 1)
UNION
(SELECT * FROM `table_name` WHERE b=0 AND a=4 LIMIT 1);
不要ü希望第一個匹配,或隨機的? – kritya
你能否爲你的例子使用更多的描述性列名?如果你只想要a = 3和a = 4s中的一個,你想用什麼標準來確定要返回哪一個。哪一個重要? – six8
http://stackoverflow.com/questions/2129693/mysql-using-limit-within-group-by-to-get-n-results-per-group似乎涵蓋了同樣的想法 –