如何在 MySQL 中选择一些行,然后选择其他行?

时间:2020-12-30 20:33:25

标签: mysql union

我有这个查询,它有效,但我不确定这是否是最好的方法,而且我没有得到我想要的。

我需要先选择包含在“IN”子句中的查询,然后再与其他查询合并。返回的整行必须是 40。

SELECT * 
FROM (
    SELECT * FROM tbl_x a WHERE id IN(11,20,30) 
    UNION ALL 
    SELECT * FROM tbl_x b WHERE exam_group='jpx' AND subject='chemistry'
) ab 
GROUP BY id LIMIT 40

1 个答案:

答案 0 :(得分:1)

下一个查询应该以简单的方式返回相同的数据:

SELECT * 
FROM tbl_x 
WHERE 
    id IN (11,20,30)
    OR (exam_group='jpx' AND subject='chemistry')
ORDER BY id IN (11,20,30) DESC, id
LIMIT 40;