mysql 如何保持in条件的顺序
在使用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的顺序排列。
原文地址: https://www.cveoy.top/t/topic/haZz 著作权归作者所有。请勿转载和采集!