我正在尝试运行以下查询:
select * from (select * from customquestionbank where questionid=6 or secondquestionid=6
union select * from customquestionbank where questionid=5 or secondquestionid=5
union select * from customquestionbank where questionid=10 or secondquestionid=10
union select * from customquestionbank where questionid=11 or secondquestionid=11) Tabled
作为该网站的新手,我还无法发布图像,但结果如下:
questionid -> 5,6 ,10,11
但是,我希望结果以与上面的 select 语句相同的顺序显示。换句话说,questionid=6 首先返回,然后是 5,依此类推。
最佳答案
你不需要所有的联合,只需像这样:
SELECT DISTINCT *
FROM customquestionbank
WHERE questionid IN ( 6, 5, 10, 11 )
OR secondquestionid IN ( 6, 5, 10, 11 )
ORDER BY CASE
WHEN 6 IN ( questionid, secondquestionid ) THEN 0
WHEN 5 IN ( questionid, secondquestionid ) THEN 1
WHEN 10 IN ( questionid, secondquestionid ) THEN 2
WHEN 11 IN ( questionid, secondquestionid ) THEN 3
END
关于sql - 如何用SQL UNION指定订单结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10750477/