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

MySQL에서 특정 행만 조회하는 방법 – WHERE 절과 LIMIT 활용하기

MySQL에서 전체 데이터가 아닌 특정 조건에 맞는 행(row)만 가져오고 싶다면 WHERE 절과 ORDER BY, LIMIT를 함께 사용하면 됩니다. 이 글에서는 예제 테이블을 만들고, 특정 행만 조회하는 쿼리를 단계별로 살펴보겠습니다.

1. 테이블 생성하기

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

mysql> create table DemoTable1972
    (
    Section char(1),
    StudentName varchar(20)
    );
Query OK, 0 rows affected (0.00 sec)

2. 샘플 데이터 삽입하기

INSERT 명령어를 사용해 테이블에 학생 데이터를 입력합니다.

mysql> insert into DemoTable1972 values('D','Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1972 values('B','David');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1972 values('A','Mike');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1972 values('C','Carol');
Query OK, 1 row affected (0.00 sec)

3. 전체 데이터 확인하기

SELECT 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1972;

실행 결과는 다음과 같습니다.

+---------+-------------+
| Section | StudentName |
+---------+-------------+
| D       | Chris       |
| B       | David       |
| A       | Mike        |
| C       | Carol       |
+---------+-------------+
4 rows in set (0.00 sec)

4. 특정 행만 조회하는 쿼리

이제 조건에 맞는 특정 행만 가져오는 쿼리를 작성해 보겠습니다. 아래 쿼리는 Section 값이 'C'보다 큰 행을 Section 기준으로 정렬한 뒤, 최대 2개의 행만 반환합니다.

mysql> select * from DemoTable1972 where Section > 'C' order by Section limit 2;

실행 결과는 다음과 같습니다.

+---------+-------------+
| Section | StudentName |
+---------+-------------+
| D       | Chris       |
+---------+-------------+
1 row in set (0.00 sec)

쿼리 동작 원리

  • WHERE Section > 'C': 문자 비교를 통해 Section이 'C'보다 뒤에 오는 값(예: 'D')만 필터링합니다.
  • ORDER BY Section: 결과를 Section 기준으로 오름차순 정렬합니다.
  • LIMIT 2: 정렬된 결과 중 최대 2개의 행만 반환하도록 제한합니다.

이처럼 WHERE 절로 조건을 지정하고, ORDER BY로 정렬한 후, LIMIT로 개수를 제한하면 원하는 특정 행만 손쉽게 조회할 수 있습니다. 대용량 테이블에서 필요한 데이터만 효율적으로 가져올 때 매우 유용하게 활용됩니다.