MySQL按顺序排序!

Jef*_*ter 6 mysql sql sql-order-by

我希望按照一定的顺序做订单.我知道我可以修改整个数据库,但我需要修改整个代码库.

我所拥有的是一个名为'status'的表'游戏'中的一列.

所以...

  SELECT * 
    FROM games 
ORDER BY status ASC  -- Will retrieve results going from 0 then 1 then 2
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是能够按1然后0然后2来订购它.

有任何想法吗???

OMG*_*ies 4

如果我理解正确的话,使用CASE 表达式

  SELECT g.* 
    FROM GAMES g
ORDER BY CASE g.status 
           WHEN 0 THEN 1
           WHEN 1 THEN 2
           WHEN 2 THEN 3
         END
Run Code Online (Sandbox Code Playgroud)

使用FIND_IN_SET 函数

  SELECT g.* 
    FROM GAMES g
ORDER BY FIND_IN_SET(g.status, '0,1,2')
Run Code Online (Sandbox Code Playgroud)

使用FIELD功能

  SELECT g.* 
    FROM GAMES g
ORDER BY FIELD(g.status, 0, 1, 2)
Run Code Online (Sandbox Code Playgroud)