mysql使用IN关键字查询时 返回结果的顺序问题
近日 做一个接口需要按照传入的ids[]的顺序返回数据,但是使用in关键字查询后返回的结果均为id递增顺序排序(我默认莫勇order by),如下
查阅后发现:
MySQL 默认排序行为
在某些情况下,数据库(如 MySQL)在处理 IN
查询时,可能会自动根据 id
字段的索引进行排序。MySQL 在执行 IN
查询时,默认不会强制保证顺序,但它可能会根据查询计划(执行计划)和索引优化来返回结果,导致返回结果按照 id
排序。尤其是在 id
是主键或有索引时,数据库可能会选择按照 id
的顺序进行返回。
所以会出现我遇到的问题。
解决方法是在sql中显式的使用FIELD()函数定义order by规则,如下
field函数用法:FIELD(column, value1, value2, ..., valueN);
正文到此结束
- 本文标签: mysql Java
- 本文链接: https://www.wangwenzhi.top/article/29
- 版权声明: 本文由王开心原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权