在使用in条件时,MySQL并不保证结果集中元素的顺序与in条件中元素的顺序一致。如果需要保持顺序一致,可以使用ORDER BY FIELD函数来实现。

例如,假设有以下表结构:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

现在需要查询id为2、1、3的用户信息,并保持顺序一致,可以使用如下SQL语句:

SELECT * FROM `user` WHERE `id` IN (2,1,3) ORDER BY FIELD(`id`, 2, 1, 3);

其中,FIELD函数第一个参数为需要排序的字段,后面的参数为排序顺序,与in条件中元素的顺序一致。执行以上SQL语句后,查询结果将会按照2、1、3的顺序排列。

mysql 如何保持in条件的顺序

原文地址: https://www.cveoy.top/t/topic/haZz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录