Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 처음 10개 레코드만 선택하는 쿼리 작성 방법

MySQL에서 처음 10개 레코드 선택하기

테이블에서 처음 10개의 레코드를 선택하려면 먼저 레코드를 오름차순(ASC) 또는 내림차순(DESC)으로 정렬한 뒤, LIMIT 10을 사용하여 10개의 레코드만 가져오면 됩니다. 기본적인 쿼리 형태는 다음과 같습니다.

select *from (select *from yourTableName ORDER BY yourColumnName ASC LIMIT 10)anyAliasName ORDER BY yourColumnName DESC;

아래에서 실제 예제를 통해 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable683(Page int);
Query OK, 0 rows affected (0.83 sec)

2단계: 레코드 삽입

insert 명령을 사용하여 테이블에 레코드를 삽입합니다.

mysql> insert into DemoTable683 values(100);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable683 values(101);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable683 values(102);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable683 values(103);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable683 values(104);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable683 values(105);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable683 values(106);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable683 values(107);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable683 values(108);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable683 values(109);
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable683 values(110);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable683 values(111);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable683 values(112);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable683 values(113);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable683 values(114);
Query OK, 1 row affected (0.10 sec)

3단계: 전체 레코드 확인

select 문을 사용하여 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable683;

실행 결과는 다음과 같으며, 총 15개의 레코드가 저장되어 있습니다.

+------+
| Page |
+------+
| 100 |
| 101 |
| 102 |
| 103 |
| 104 |
| 105 |
| 106 |
| 107 |
| 108 |
| 109 |
| 110 |
| 111 |
| 112 |
| 113 |
| 114 |
+------+
15 rows in set (0.00 sec)

4단계: 처음 10개 레코드 선택 쿼리 실행

다음은 MySQL에서 처음 10개 레코드를 선택하는 실제 쿼리입니다. 서브쿼리에서 Page 컬럼을 오름차순으로 정렬한 후 LIMIT 10으로 상위 10개를 추출하고, 외부 쿼리에서 이를 다시 내림차순으로 정렬합니다.

mysql> select *from (select *from DemoTable683 ORDER BY Page ASC LIMIT 10)tbl ORDER BY Page DESC;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+------+
| Page |
+------+
| 109 |
| 108 |
| 107 |
| 106 |
| 105 |
| 104 |
| 103 |
| 102 |
| 101 |
| 100 |
+------+
10 rows in set (0.00 sec)

이처럼 ORDER BY로 정렬 순서를 지정하고 LIMIT으로 가져올 레코드 수를 제한하면, 전체 데이터 중 원하는 개수만큼의 레코드를 손쉽게 조회할 수 있습니다. 외부 쿼리의 정렬 방향을 조절하면 오름차순 또는 내림차순 어느 쪽으로도 결과를 출력할 수 있습니다.