使用MySQL IN()以特定顺序显示ID?

要以特定顺序(即您选择的顺序)显示ID,请使用FIELD()方法。

让我们首先创建一个表-

mysql> create table DemoTable
   (
   UserId int
   );

以下是使用insert命令在表中插入一些记录的查询-

mysql> insert into DemoTable values(100);
mysql> insert into DemoTable values(10);
mysql> insert into DemoTable values(40);
mysql> insert into DemoTable values(80);
mysql> insert into DemoTable values(70);
mysql> insert into DemoTable values(60);

以下是查询以使用select命令显示表中的记录-

mysql> select *from DemoTable;

这将产生以下输出

+--------+
| UserId |
+--------+
| 100    |
| 10     |
| 40     |
| 80     |
| 70     |
| 60     |
+--------+
6 rows in set (0.00 sec)

以下是要使用的查询,IN()FIELD()按照您选择的顺序显示记录-

mysql> select UserId from DemoTable where UserId IN(60,100,10,80,40,70)
order by field(UserId,60,100,10,80,40,70);

这将产生以下输出-

+--------+
| UserId |
+--------+
| 60     |
| 100    |
| 10     |
| 80     |
| 40     |
| 70     |
+--------+
6 rows in set (0.03 sec)