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

IN 절의 순서로 MySQL 행을 선택하는 방법은 무엇입니까?

<시간/>

IN 절의 순서대로 MySQL 행을 선택하려면 FIND_IN_SET() 함수를 사용해야 합니다. 구문은 다음과 같습니다 -

SELECT yourVariableName.*FROM yourTableName yourVariableNameWHERE yourVariableName.yourColumnName IN(value1,value2,...N)ORDER BY FIND_IN_SET( yourVariableName.yourColumnName,'value1,value2,...N');

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

mysql> 테이블 생성 InDemo -> ( -> CodeId int, -> Name varchar(20) -> );Query OK, 영향을 받는 행 0개(0.95초)

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> InDemo 값에 삽입(1,'John');쿼리 OK, 1행 영향(0.24초)mysql> InDemo 값에 삽입(2,'Carol');쿼리 OK, 1행 영향(0.19초) )mysql> InDemo 값에 삽입(3,'Sam');쿼리 OK, 1행 영향(0.18초)mysql> InDemo 값에 삽입(4,'Bob');쿼리 OK, 1행 영향(0.17초) 

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

mysql> InDemo에서 *선택;

다음은 출력입니다 -

+--------+-------+| 코드 ID | 이름 |+--------+-------+| 1 | 존 || 2 | 캐롤 || 3 | 샘 || 4 | 밥 |+--------+-------+4행 세트(0.00초)

다음은 IN 절의 순서로 MySQL 행을 선택하는 쿼리입니다 -

mysql> select tbl.* -> from InDemo tbl -> where tbl.CodeId in(1,3,2,4) -> ORDER BY FIND_IN_SET( tbl.CodeId,'1,3,2,4');

다음은 출력입니다 -

+--------+-------+| 코드 ID | 이름 |+--------+-------+| 1 | 존 || 3 | 샘 || 2 | 캐롤 || 4 | 밥 |+--------+-------+4행 세트(0.00초)