是否显式指定mysql查询的排序顺序?
如果我有:是否显式指定mysql查询的排序顺序?,mysql,sql,sql-order-by,Mysql,Sql,Sql Order By,如果我有: ID | Title 1 | Shirt 2 | CD 3 | Cap 4 | Mp3 5 | Badge 如果我想按以下顺序排序:4,2,5,3,1。有没有一种方法可以显式指定sql查询?比如: select * from TABLE order by ID(4,2,5,3,1) ?? 您可以使用ORDER BY中的事例作为基本查找表: select * from your_table order by case id when 4 then
ID | Title
1 | Shirt
2 | CD
3 | Cap
4 | Mp3
5 | Badge
如果我想按以下顺序排序:4,2,5,3,1。有没有一种方法可以显式指定sql查询?比如:
select * from TABLE order by ID(4,2,5,3,1) ??
您可以使用ORDER BY中的事例作为基本查找表:
select *
from your_table
order by
case id
when 4 then 1
when 2 then 2
when 5 then 3
when 3 then 4
when 1 then 5
end
事实上,你们非常接近。这是一个简单的例子:
select * from TABLE order by field(ID,4,2,5,3,1)
您运行此程序并让我知道您的疑问。很好,这是MySQL特有的吗?@muistoshort是的-这更像MySQL的“恐惧”,但所有“不符合标准”的东西都非常方便,难以抗拒!不如引入一个“位置”列,按照您想要的方式对项目进行排序,并查询按位置排序的行?依靠ID-s订购东西只是。。。哑巴,很棒的台词。非常有用
select * from TABLE order by ID=1,ID=3,ID=5,ID=2,ID=4;