对于返回的记录集顺序,您需要使用FIND_IN_SET()函数。
例如,让我们创建一个表。
mysql> create table returnRecordSetOrderDemo -> ( -> Id int, -> Name varchar(20) -> );
使用insert命令在表中插入一些记录。
查询如下。
mysql> insert into returnRecordSetOrderDemo values(100,'John'); mysql> insert into returnRecordSetOrderDemo values(130,'Carol'); mysql> insert into returnRecordSetOrderDemo values(103,'Bob'); mysql> insert into returnRecordSetOrderDemo values(134,'Sam'); mysql> insert into returnRecordSetOrderDemo values(102,'Larry'); mysql> insert into returnRecordSetOrderDemo values(145,'David');
使用select语句显示表中的所有记录。
查询如下。
mysql> select *from returnRecordSetOrderDemo;
以下是输出。
+------+-------+ | Id | Name | +------+-------+ | 100 | John | | 130 | Carol | | 103 | Bob | | 134 | Sam | | 102 | Larry | | 145 | David | +------+-------+ 6 rows in set (0.00 sec)
这是对MySQL'IN'子句的查询以及返回的记录集顺序。
mysql> select *from returnRecordSetOrderDemo -> where Id in(100,145,103,130) -> order by FIND_IN_SET(Id,'100,145,103,130');
以下是输出。
+------+------- | Id | Name | +------+-------+ | 100 | John | | 145 | David | | 103 | Bob | | 130 | Carol | +------+-------+ 4 rows in set (0.00 sec)