我想知道如何执行按首先询问的内容排序的请求。
示例:
SELECT name from user WHERE (guid = '6131bb732f6eec946e2121d1dc616019' OR guid = '62fdb8ecb0d5b7444f55aeba23fd606c' OR guid = 'f19fd7262163573abcf585d94fa74857')
我希望结果不按 id 或其他任何内容排序,而是按 6131* 结果排序,然后是 62f*,然后是 f19fd*
有办法做到这一点吗?
最佳答案
SELECT name
from user
WHERE guid = '6131bb732f6eec946e2121d1dc616019'
OR guid = '62fdb8ecb0d5b7444f55aeba23fd606c'
OR guid = 'f19fd7262163573abcf585d94fa74857'
order by case when guid = '6131bb732f6eec946e2121d1dc616019' then 1
when guid = '62fdb8ecb0d5b7444f55aeba23fd606c' then 2
when guid = 'f19fd7262163573abcf585d94fa74857' then 3
end
或
SELECT name
from user
WHERE guid in ('6131bb732f6eec946e2121d1dc616019', '62fdb8ecb0d5b7444f55aeba23fd606c', 'f19fd7262163573abcf585d94fa74857')
order by field(guid, '6131bb732f6eec946e2121d1dc616019', '62fdb8ecb0d5b7444f55aeba23fd606c', 'f19fd7262163573abcf585d94fa74857')
关于MySQL按请求顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23856199/