我希望在表格上进行选择,并按特定关键字或关键字列表对结果进行排序.例如,我有一个像这样的表:
ID  Code
1   Health
2   Freeze
3   Phone
4   Phone
5   Health
6   Hot
所以,而不仅仅是做一个简单的Order By asc/desc我想order by Health, Phone, Freeze, Hot.这可能吗?
sha*_*nuo 49
试试这个:
select * from table 
order by FIELD(Code, 'Health', 'Phone', 'Freeze', 'Hot')
Jes*_*sen 12
您可以使用关键字表加入,并包含序列列和ORDER BY Keyword.Sequence.
关键字表的示例如下所示:
ID  Code     Sequence
1   Health   1 
2   Freeze   3
3   Phone    2
4   Hot      4
然后你可以加入.
SELECT *
FROM   MyTable INNER JOIN
          Keywords ON Keywords.ID = MyTable.KeywordID
ORDER BY Keywords.Sequence
希望这会给你一个想法.
Blo*_*ard 12
这是一个可怕的黑客:
select * from table
order by (
     case Code 
     when 'Health' then 0 
     when 'Phone' then 1
     when 'Freeze' then 2
     when 'Hot' then 3
     end
)
小智 5
现在MySQL有一个函数叫find_in_set()
像这样使用它:
select * from table 
order by find_in_set(Code,'Health','Phone','Freeze','Hot')