明确指定mysql查询的排序顺序?

cod*_*ama 17 mysql sql sql-order-by

如果我有:

ID | Title
1  | Shirt
2  | CD
3  | Cap
4  | Mp3
5  | Badge
Run Code Online (Sandbox Code Playgroud)

如果我想按此顺序排序:4,2,5,3,1.有没有办法在您明确指定的情况下进行SQL查询?就像是:

select * from TABLE order by ID(4,2,5,3,1) ??
Run Code Online (Sandbox Code Playgroud)

Boh*_*ian 28

实际上,你非常接近.这很简单:

select * from TABLE order by field(ID,4,2,5,3,1)
Run Code Online (Sandbox Code Playgroud)

  • @muistooshort是的-它是更多的mysql“ funk”,但是所有那些“非标准兼容”的东西都非常方便,难以抗拒! (2认同)

mu *_*ort 6

您可以在ORDER BY中使用CASE作为基本的查询表:

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
Run Code Online (Sandbox Code Playgroud)