在使用SELECT WHERE IN()时,有没有办法保持顺序?例如,使用以下查询:

SELECT id FROM data_table WHERE id IN(56,55,54,1,7);

结果将使用id为的默认顺序返回.1,7,54,55,56

当我想保留IN中使用的顺序时:56,55,54,1,7

在MySQL中有没有快速的方法可以做到这一点,或者我会被迫在代码中之后订购它吗?

推荐答案

使用FIND_IN_SET:

ORDER BY FIND_IN_SET(id, '56,55,54,1,7')

Database相关问答推荐

无法初始化数据库,出现错误无法连接到`host=db user=database=`:拨号错误(dial tcp xxxx: connect: connection refused)

MongoDB 中的 OVER PARTITION 类似功能

存储具有公共链接但 ID 很长的用户文件是否安全?

[mongodb],如何通过聚合获得具有许多不同字段的文档的最大值?子字段名称相同

将数据库/后端添加到 android 应用程序

使用python为组中的每个元素添加一个序列号

复合主键

Select 正确的数据库:MySQL 与Everything 其它数据库

在 model.save() 中处理竞争条件

在迁移中添加行

Spring 的 JdbcTemplate 是否在查询超时后关闭连接?

向表中添加大量索引是否有缺点?

MySQL 错误 - #1062 - Duplicate entry ' ' for key 2

QSqlDatabase & QSqlQuery 的正确方法是什么?

如何处理数据库中用户的身份验证/授权?

可以将 SQLAlchemy 配置为非阻塞吗?

为什么关系数据库存在可伸缩性问题?

使用命令行在 Mysql 中导入压缩文件

不同类型的SQL之间的区别?

如何知道mongodb使用的是哪个存储引擎?