mysql - 避免按 MYSQL IN 关键字排序

标签 mysql sql-order-by in-operator

当查询数据库中的一组 id 时,mysql 不会按照指定 id 的顺序提供结果。我正在使用的查询如下:

SELECT id ,title, date FROM Table WHERE id in (7,1,5,9,3)

作为返回,提供的结果顺序为 1、3、5、7、9。

我怎样才能避免这种自动排序

最佳答案

如果您想按照 in 子句中指定的顺序按 id 对结果进行排序,您可以使用 FIND_IN_SET 作为:

SELECT id ,title, date 
FROM Table 
WHERE id in (7,1,5,9,3)
ORDER BY FIND_IN_SET(id,'7,1,5,9,3')

关于mysql - 避免按 MYSQL IN 关键字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4195642/

相关文章:

java - 一秒插入多少条记录

mysql - 为什么 MySQL 给我一个语法错误?

mysql - 在 MySQL 中按 desc 排序

c# - 是否有 C# IN 运算符?

php - 如果我的主键不自动递增,如何使用 PHP 获取最后插入的 ID

mysql - 相当于 DB2/PostGIS 函数 "ST_Intersection"的 MySQL 函数是什么?

SQL:排序依据 - 在平局的情况下对另一列进行排序

sql - 在 PostgreSQL 中对组内的行进行排序

mysql - 具有逗号分隔列表的数据库列的语法 - mySQL `IN` 运算符

sql-server - 存储过程中 IN 运算符导致数据类型 nvarchar 转换为 bigint 时出错