基本上我有一个字段可以包含一些前缀字符串:
word1
bla2
ttt3
word4
[...]
我需要先输入SQL,例如ttt3
,然后输入所有其他字符串。
我试了这个没有运气
ORDER BY FIELD (myField,'ttt3',*)
有什么建议吗?
答案 0 :(得分:6)
使用ORDER BY CASE
构造。它强制为您要提取的值为0,为其他所有值强制为1,因此0先排序。它只是像任何列一样放入ORDER BY
列表,以逗号分隔,因此您可以在之后添加其他排序列。
ORDER BY
CASE WHEN myField = 'ttt3' THEN 0 ELSE 1 END,
myField,
other_order_col,
other_order_col2
答案 1 :(得分:2)
ORDER BY myField = 'ttt3' DESC
或更多通用且与供应商无关:
ORDER BY CASE WHEN myField = 'ttt3' THEN 0 ELSE 1 END