如何在MySQL中选择一些行,然后选择其他行?
我有这个问题,它是有效的,但我不确定这是否是最好的方法,我没有得到我想要的 我需要首先选择包含在“in”子句中的查询,然后选择与其他查询的联合。返回的整行必须为40如何在MySQL中选择一些行,然后选择其他行?,mysql,union,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 B
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
下一个查询应该以简单的方式返回相同的数据:
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;
它可以工作,但仍然非常类似于我自己的查询。如果我将LIMIT设置为10,那么它将不会得到ID为(11,20,30)的查询。我只得到了顺序ID 1-10。我通过addorderby语句编辑了我的答案。请看这里的简化示例:它起作用了。谢谢。