Sử dụng DISTINCT để loại bỏ giá trị trùng lắp trong MySQL

DISTINCT, mysql basic, trung lap, sql, cau lenh sql

Khi truy vấn dữ liệu từ table, bạn có thể nhận được những giá trị trùng lắp, và để loại bỏ những giá trị này, chúng ta sẽ sử dụng từ khóaDISTINCT trong câu lệnh SELECT. Cú pháp sử dụng DISTINCT như sau :

SELECT DISTINCT columns

FROM table_name

WHERE where_conditions

Để các bạn dễ hiểu, chúng ta sẽ làm một ví dụ như sau : Giả sử chúng ta cần lấy giá trị lastname từ một table employees . Đầu tiên chúng ta sẽ sử dụng câu lệnh SELECT thông thường :

SELECT lastname

FROM employees

ORDER BY lastname

Và kết quả sẽ hiển thị như sau :

DISTINCT, mysql basic, trung lap, sql, cau lenh sql

Theo kết quả bên trên, chúng ta nhận được những giá trị trùng lắp như :  Bondur, Firrelli.., Và để loại bỏ sự trùng lắp này chúng ta sẽ sử dụng từ khóa DISTINCT

SELECT DISTINCT lastname

FROM employees

ORDER BY lastname

DISTINCT, mysql basic, trung lap, sql, cau lenh sql

Các bạn thấy đó, bây giờ các giá trị lastname đã không còn giá trị nào trùng lắp nữa.

MySQL DISTINCT và giá trị  NULL

Nếu một cột trong table có giá trị NULL thì khi bạn sử dụng DISTINCT , giá trị trả về cũng tính luôn cả cột này. Ví dụ như nếu chúng ta truy vấn table customers , mà trong table này có nhiều cột có giá trị NULL, và khi chúng ta truy vấn sẽ nhận được kết quả như sau :

SELECT DISTINCT state

FROM customers

DISTINCT, mysql basic, trung lap, sql, cau lenh sql

Ngoài ra các bạn cũng có thể sử dụng toán tử DISTINCT với nhiều hơn một cột.

SELECT DISTINCT state, city

FROM customers

WHERE state IS NOT NULL

ORDER BY state, city

DISTINCT, mysql basic, trung lap, sql, cau lenh sql

nếu không sử dụng DISTINCT thì chúng ta sẽ nhận được những giá trị trùng lắp như sau :

SELECT state, city

FROM customers

WHERE state IS NOT NULL

ORDER BY state, city

DISTINCT, mysql basic, trung lap, sql, cau lenh sql

Có lẽ đến lúc này thì các bạn đã có thể hiểu và biết cách sử dụng DISTINCT để lấy các giá trị duy nhất trong table. Ngoài ra các bạn cũng có thể sử dụng hàm  COUNT để đếm số lượng các giá trị duy nhất này.

SELECT COUNT(DISTINCT state)

FROM customers

WHERE country = 'USA';

DISTINCT, mysql basic, trung lap, sql, cau lenh sql
Mình mong là qua bài viết ngắn ngủi này, các bạn sẽ có thêm một kinh nghiệm trong việc truy vấn dữ liệu.

 

 HỖ TRỢ TRỰC TUYẾN