Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL IN 절에서 반환된 레코드 세트 순서를 얻으시겠습니까?

<시간/>

반환된 레코드 세트 순서를 위해서는 FIND_IN_SET() 함수를 사용해야 합니다.

예를 들어 테이블을 생성해 보겠습니다.

mysql> create table returnRecordSetOrderDemo
   -> (
   -> Id int,
   -> Name varchar(20)
   -> );
Query OK, 0 rows affected (1.01 sec)

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오.

쿼리는 다음과 같습니다.

mysql> insert into returnRecordSetOrderDemo values(100,'John');
Query OK, 1 row affected (0.13 sec)
mysql> insert into returnRecordSetOrderDemo values(130,'Carol');
Query OK, 1 row affected (0.13 sec)
mysql> insert into returnRecordSetOrderDemo values(103,'Bob');
Query OK, 1 row affected (0.17 sec)
mysql> insert into returnRecordSetOrderDemo values(134,'Sam');
Query OK, 1 row affected (0.27 sec)
mysql> insert into returnRecordSetOrderDemo values(102,'Larry');
Query OK, 1 row affected (0.15 sec)
mysql> insert into returnRecordSetOrderDemo values(145,'David');
Query OK, 1 row affected (0.18 sec)

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)