如果有人请帮助我,我很震惊..
对不起,我的英语不好
我的SQL查询是: -
SELECT * FROM table ORDER BY FIELD(ID,1,5,4,3)
我想这样做id 1应该是第一条记录,id 5应该是第6条记录,id 4应该是第11条记录,id 3应该是第16条记录, 有没有办法在mysql中执行此操作.. 请帮帮我。
答案 0 :(得分:0)
只要您只想查看order by子句中列出的ID,您的代码就可以运行。尝试将您选择的ID添加到where子句:
SELECT * FROM table
WHERE ID in(1,3,4,5)
ORDER BY FIELD(ID,1,5,4,3) ;
你可以测试一下吗?它对我来说很好。
您还可以使用多个选择和联合来解决此问题。
SELECT * FROM table where ID=1
UNION ALL
SELECT * FROM table where ID=5
UNION ALL
SELECT * FROM table where ID=4
UNION ALL
SELECT * FROM table where ID=3 ;
UNION ALL将显示完整的结果集。没有ALL的UNION将排除重复的结果。在你的情况下,重复是不可能的,所以没有ALL的联合就足够了:
SELECT * FROM table where ID=1
UNION
SELECT * FROM table where ID=5
UNION
SELECT * FROM table where ID=4
UNION
SELECT * FROM table where ID=3 ;