MySQL:如何基于resultset中的条件仅返回一行

MySQL:如何基于resultset中的条件仅返回一行,mysql,Mysql,我有下表: id | group | value 1 | 1 | 10 2 | 1 | 20 3 | 1 | 30 4 | 0 | 20 5 | 0 | 20 6 | 0 | 10 我想将组为1=30时的最高值和组为0时的所有值返回到一个结果集中 我必须在一个语句中完成这项工作,我想我应该在SELECT语句中使用IF语句,但我不知道如何实现。有人能帮我指出正确的方向吗?如果group+value是唯一的,您也

我有下表:

id | group | value 
1  |   1   |   10
2  |   1   |   20
3  |   1   |   30
4  |   0   |   20
5  |   0   |   20
6  |   0   |   10
我想将组为1=30时的最高值和组为0时的所有值返回到一个结果集中


我必须在一个语句中完成这项工作,我想我应该在SELECT语句中使用IF语句,但我不知道如何实现。有人能帮我指出正确的方向吗?

如果group+value是唯一的,您也可以按照Ray Toal的建议在不使用联合的情况下进行操作

(select max(value) from the_table where group = 1)
union
(select value from the_table where group = 0)

如果group+值是唯一的,也可以按照Ray Toal的建议在不使用并集的情况下执行


查找GROUP_CONCAT函数。您可以根据需要发布结果吗?是一条记录还是多条记录?查找GROUP_CONCAT函数。您可以根据需要发布结果吗?是一张唱片还是几张唱片?
SELECT a.value
FROM table1 a    
WHERE a.`group`=0 or (a.`group`=1 AND a.value = 
 (SELECT MAX(value) FROM table1 b WHERE b.`group`=1))