解决MySQL需要根据特定顺序排序

文章目录

  • [0 写在前面](#0 写在前面)
  • [1 问题引入](#1 问题引入)
  • [2 问题解决](#2 问题解决)
  • [3 写在末尾](#3 写在末尾)

0 写在前面

在进行业务需求的时候,不会根据排序去选择数据。例如,在导出的时候数据排序是根据编辑时间去排序的,那么他的主键id会打乱。

假如: 要导出id为 3 ,1 , 2 ,6 , 5 的数据并且根据此顺序导出。

1 问题引入

如果直接在MySQL中写

sql 复制代码
SELECT 数据
FROM 表名
WHERE 表名id IN (3, 1, 2, 6, 5)

会发生MYSQL默认排序规则;

2 问题解决

使用mysql的FIELD()函数进行自定义排序

使用id为例:

sql 复制代码
SELECT 数据
FROM 表名
WHERE 表名.id IN (所有id)
order by FIELD(id, 排序规则);

注意:排序规则需要一一对应,即使在 in()的数据不影响,只要在field()确认规则即可

3 写在末尾

因为从业务里传过来的数据肯定是规则排序,所以建议用IN() 和 FIELD()里的排序 对应起来是最保险的。

相关推荐
l1t14 分钟前
测试DuckDB v2.1.0-alpha49002的bignum乘法
数据库·sql·算法·duckdb
麦壳饼1 小时前
SonnetDB:向量召回率评估中的精确基线与参数记录
数据库·sonnetdb
ClouGence1 小时前
数据如何随时可用?广西水牛先生的 MySQL 实时同步实践
数据库·mysql·数据分析
斯晨的AI笔记1 小时前
rsync 部署避坑:脚本执行位被 git 模式位抹掉,巡检备份双静默失败的排查与根治
数据库
这个DBA有点耶1 小时前
innodb_autoinc_lock_mode的三种模式:批量插入时自增锁的持有逻辑与调优
数据库·架构·代码规范
我命由我123451 小时前
5-1.Python 编码进阶 - 函数进阶(参数、返回值、递归、函数作为参数传递、lambda 匿名函数)
java·服务器·数据库·后端·python·java-ee·python3.11
小蒜学长2 小时前
基于Spring Boot+Vue3的在线游戏技术指导师匹配系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·在线游戏技术指导
Web3&Basketball3 小时前
DeepSeek V4.1 Flash 实测:Token 砍半、Search API 跑通
数据库·人工智能·python·大模型·api调用·deepseek·推理优化
川石课堂软件测试3 小时前
涨薪技术|0到1学会性能测试第9课-HTTP响应统计
数据库·功能测试·网络协议·http·kubernetes·单元测试·测试用例
竣达技术3 小时前
Modbus 转 SNMP 协议转换器|自定义协议 + SNMP TRAP 主动上报
运维·服务器·网络·数据库·安全