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

MySQL 필드() 함수?

<시간/>

field() 함수는 값 목록에서 값의 인덱스 위치를 반환합니다. ORDER BY와 함께 field() 함수를 사용하여 값을 정렬해 보겠습니다. 구문은 다음과 같습니다.

SELECT *FROM yourTableName order by
   field(yourColumnName,yourValue1,yourValue2,yourValue3,yourValue4,.....N) desc;

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

mysql> create table OrderByDemo
-> (
-> StudentId int
-> );
Query OK, 0 rows affected (0.71 sec)

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

mysql> insert into OrderByDemo values(101);
Query OK, 1 row affected (0.19 sec)

mysql> insert into OrderByDemo values(1010);
Query OK, 1 row affected (0.56 sec)

mysql> insert into OrderByDemo values(1001);
Query OK, 1 row affected (0.12 sec)

mysql> insert into OrderByDemo values(401);
Query OK, 1 row affected (0.12 sec)

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

mysql> select *from OrderByDemo;

다음은 출력입니다.

+-----------+
| StudentId |
+-----------+
| 101       |
| 1010      |
| 1001      |
| 401       |
+-----------+
4 rows in set (0.00 sec)

다음은 값을 기준으로 정렬하는 쿼리입니다. 내림차순으로 정렬하겠습니다. 쿼리는 다음과 같습니다.

mysql> select *from OrderByDemo order by field(StudentId,101,401,1001,1010) desc;

다음은 출력입니다.

+-----------+
| StudentId |
+-----------+
| 1010      |
| 1001      |
| 401       |
| 101       |
+-----------+
4 rows in set (0.00 sec)