MySQL SELECT查询问题

时间:2011-09-17 04:53:33

标签: mysql

我有一个包含两列的MySQL表:a和b。 该表中有20个条目

对于10个条目,a = 3.对于其他10个条目,a = 4。

我想选择b = 0的行,但我只想要a = 3的组和a = 4的组。

基本查询类似于:

SELECT * FROM `table_name` WHERE b = 0 AND rest_of_query

rest_of_query应该是什么?

4 个答案:

答案 0 :(得分:0)

假设您只需要来自该组的第一个。 您可以通过以下方式执行此操作:

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;

答案 1 :(得分:0)

鉴于您没有为其他列指定任何特定条件(如果有),以下查询将提供您想要的内容。选择的特定行可能是不确定的。

select * from `table_name` where b=0 group by a;

答案 2 :(得分:0)

根据我的理解你只有2列,并且正在定义其中一个是什么,然后你只想要另一列的不同条目。

这可以通过GROUP BY完成

SELECT a, b FROM table_name WHERE b = 0 GROUP BY a;

答案 3 :(得分:0)

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);