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

MySQL select 문 IN 절에서 값의 순서로 정렬하시겠습니까?

<시간/>

ORDER BY 절과 함께 field() 함수를 사용하여 값의 순서로 정렬할 수 있습니다. 구문은 다음과 같습니다.

SELECT *FROM yourTableNameWHERE yourColumnName IN(Value1,Value2,Value3,.......N);ORDER BY FIELD(yourColumnName,Value1,Value2,Value3,.......N); 

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> Create table SelectInDemo -> ( -> StudentId int, -> StudentName varchar(100), -> StudentAge int -> );쿼리 OK, 영향을 받는 행 0개(1.04초)

insert 명령을 사용하여 테이블에 레코드를 삽입합니다. 쿼리는 다음과 같습니다

mysql> insert into SelectInDemo values(1,'Mike',23);Query OK, 1행 영향(0.21초)mysql> insert into SelectInDemo values(10,'Bob',21);Query OK, 1 row 영향을 받은(0.16초)mysql> SelectInDemo 값에 삽입(11,'Carol',30);쿼리 확인, 영향을 받는 1행(0.25초)mysql> SelectInDemo 값에 삽입(15,'Sam',24);쿼리 확인, 영향을 받는 행 1개(0.15초)mysql> SelectInDemo 값에 삽입(20,'John',26);쿼리 확인, 영향을 받는 행 1개(0.09초)mysql> SelectInDemo 값에 삽입(101,'David',27); OK, 영향을 받는 행 1개(0.25초)mysql> SelectInDemo values(96,'Justin',23)에 삽입, 쿼리 확인, 영향을 받는 행 1개(0.27초)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다

mysql> Select *from SelectInDemo;

다음은 출력입니다.

+-----------+-------------+------------+| 학생 ID | 학생 이름 | 학생 연령 |+-----------+------------+------------+| 1 | 마이크 | 23 || 10 | 밥 | 21 || 11 | 캐롤 | 30 || 15 | 샘 | 24 || 20 | 존 | 26 || 101 | 데이비드 | 27 || 96 | 저스틴 | 23 |+-------------+-------------+------------+7행 세트(0.00초) 

다음은 MySQL에서 SELECT 문과 함께 IN을 사용하는 쿼리입니다.

mysql> select *from SelectInDemo -> 여기서 StudentId IN(1,96,101,10,15,11,20) -> 필드별 정렬(StudentId,1,96,101,10,15,11,20); 

다음은 출력입니다.

+-----------+-------------+------------+| 학생 ID | 학생 이름 | 학생 연령 |+-----------+------------+------------+| 1 | 마이크 | 23 || 96 | 저스틴 | 23 || 101 | 데이비드 | 27 || 10 | 밥 | 21 || 15 | 샘 | 24 || 11 | 캐롤 | 30 || 20 | 존 | 26 |+-----------+-------------+------------+7행 세트(0.00초) 

다른 주문을 봅시다.

2차 주문에 대한 쿼리는 다음과 같습니다.

mysql> select *from SelectInDemo -> 여기서 StudentId IN(1,10,11,15,20,101,96) -> 필드별 정렬(StudentId,1,10,11,15,20,101,96); 

다음은 출력입니다.

+-----------+-------------+------------+| 학생 ID | 학생 이름 | 학생 연령 |+-----------+------------+------------+| 1 | 마이크 | 23 || 10 | 밥 | 21 || 11 | 캐롤 | 30 || 15 | 샘 | 24 || 20 | 존 | 26 || 101 | 데이비드 | 27 || 96 | 저스틴 | 23 |+----------+-------------+------------+7행 세트(0.00초)