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

MySQL 테이블에서 짝수 번째 레코드만 조회하는 방법

MySQL에서 짝수 레코드만 골라내기

MySQL 테이블에서 짝수 번째 레코드만 골라서 조회해야 하는 경우가 종종 있습니다. 이럴 때 GROUP BY 절과 HAVING 절에 MOD() 함수를 함께 사용하면 아주 간단하게 해결할 수 있습니다.

예제 데이터 확인

다음과 같은 데이터가 저장되어 있는 'Information' 테이블을 예로 들어 보겠습니다.

mysql> Select * from Information;
+----+---------+
| id | Name |
+----+---------+
| 1 | Gaurav |
| 2 | Ram |
| 3 | Rahul |
| 4 | Aarav |
| 5 | Aryan |
| 6 | Krishan |
+----+---------+
6 rows in set (0.00 sec)

짝수 레코드 조회 쿼리

아래 쿼리는 위 'Information' 테이블에서 id가 짝수인 레코드, 즉 2, 4, 6번째 레코드만 가져옵니다.

mysql> Select id, Name from information group by id having mod(id,2) = 0;
+----+---------+
| id | Name |
+----+---------+
| 2 | Ram |
| 4 | Aarav |
| 6 | Krishan |
+----+---------+
3 rows in set (0.00 sec)

쿼리의 동작 원리

MOD(id, 2)는 id 값을 2로 나눈 나머지를 반환하는 함수입니다. 나머지가 0이라면 해당 숫자는 짝수입니다. 따라서 HAVING mod(id,2) = 0 조건을 통해 짝수 id를 가진 레코드만 최종 결과로 필터링됩니다.

반대로 홀수 레코드만 조회하고 싶다면 조건을 mod(id,2) = 1 또는 mod(id,2) <> 0으로 변경하면 됩니다. 이처럼 MOD 함수와 HAVING 절을 조합하면 별도의 서브쿼리나 애플리케이션 로직 없이도 원하는 간격의 레코드를 손쉽게 추출할 수 있습니다.