我有一个包含两列的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似乎涵盖了同样的想法 –