我有这个查询,它有效,但我不确定这是否是最好的方法,而且我没有得到我想要的。
我需要先选择包含在“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
答案 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;