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

MySQL에서 DISTINCT 절과 함께 WHERE 및 LIMIT 절 활용하기

MySQL 쿼리에서 DISTINCT 절과 함께 WHERE 절을 사용하면, 결과 집합에서 고유한(중복 없는) 행을 반환할 기준 조건을 지정할 수 있습니다. 즉, WHERE 절의 조건을 만족하는 행들만 대상으로 중복이 제거된 고유한 값들이 반환됩니다.

또한 DISTINCT 절과 함께 LIMIT 절을 사용하면, 서버가 반환할 고유한 행의 최대 개수를 제한할 수 있습니다. 이는 대량의 데이터에서 필요한 만큼의 고유한 값만 효율적으로 가져오고자 할 때 매우 유용합니다.

예제

다음은 'testing'이라는 테이블에 WHERE 절과 LIMIT 절을 DISTINCT와 함께 적용한 예입니다.

mysql> Select * from testing;
+------+---------+---------+
| id   | fname   | Lname   |
+------+---------+---------+
|  200 | Raman   | Kumar   |
|  201 | Sahil   | Bhalla  |
|  202 | Gaurav  | NULL    |
|  203 | Aarav   | NULL    |
|  204 | Harshit | Khurana |
|  205 | Rahul   | NULL    |
|  206 | Piyush  | Kohli   |
|  207 | Lovkesh | NULL    |
|  208 | Gaurav  | Kumar   |
|  209 | Raman   | Kumar   |
+------+---------+---------+
10 rows in set (0.00 sec)

mysql> Select DISTINCT Lname from testing where Lname IS NOT NULL limit 3;
+---------+
| Lname   |
+---------+
| Kumar   |
| Bhalla  |
| Khurana |
+---------+
3 rows in set (0.00 sec)

위 예제에서 볼 수 있듯이, WHERE Lname IS NOT NULL 조건으로 성(Lname)이 NULL인 행을 먼저 제외한 뒤, DISTINCT로 중복을 제거하고, 마지막으로 LIMIT 3을 통해 고유한 성 값 세 개만 반환되었습니다. 이처럼 세 절을 조합하면 조건 필터링 → 중복 제거 → 개수 제한 순으로 동작하여 원하는 결과를 정확하게 얻을 수 있습니다.