我希望在表格上进行选择,并按特定关键字或关键字列表对结果进行排序.例如,我有一个像这样的表:
ID Code
1 Health
2 Freeze
3 Phone
4 Phone
5 Health
6 Hot
Run Code Online (Sandbox Code Playgroud)
所以,而不仅仅是做一个简单的Order By asc/desc
我想order by Health, Phone, Freeze, Hot
.这可能吗?
sha*_*nuo 49
试试这个:
select * from table
order by FIELD(Code, 'Health', 'Phone', 'Freeze', 'Hot')
Run Code Online (Sandbox Code Playgroud)
Jes*_*sen 12
您可以使用关键字表加入,并包含序列列和ORDER BY Keyword.Sequence.
关键字表的示例如下所示:
ID Code Sequence
1 Health 1
2 Freeze 3
3 Phone 2
4 Hot 4
Run Code Online (Sandbox Code Playgroud)
然后你可以加入.
SELECT *
FROM MyTable INNER JOIN
Keywords ON Keywords.ID = MyTable.KeywordID
ORDER BY Keywords.Sequence
Run Code Online (Sandbox Code Playgroud)
希望这会给你一个想法.
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
)
Run Code Online (Sandbox Code Playgroud)
小智 5
现在MySQL有一个函数叫find_in_set()
像这样使用它:
select * from table
order by find_in_set(Code,'Health','Phone','Freeze','Hot')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
43383 次 |
最近记录: |