MySQL按请求顺序排序

标签 mysql sql sql-order-by

我想知道如何执行按首先询问的内容排序的请求。

示例:

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/

相关文章:

sql - 使用 SQL Server 2008 R2 查询时如何用另一列替换提取的值

mysql - 如何定位查询的最后一行以显示在结果下方? (MySQL)

sql - T-SQL ORDER BY 数字和字母混合在字符串中

PHP/MySQL 搜索...默认显示所有数据,或显示匹配的数据

mysql - 在这种情况下,MySQL INT 列的实际范围是多少?

php - 将现有的 php 搜索重构为 OOP

sql - Coldfusion/sql ASC 顺序,末尾有空格

mysql - ORDER BY 与 CASE MySQL

php - mysql 字符串逗号分隔,如 %which one caused result?%

sql - 如何通过 WCF 连接到另一台虚拟机上的数据库?