是否显式指定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;