04/10/2018, 20:18

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

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óa DISTINCT 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 ...

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

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óa DISTINCT 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 :

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

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

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

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

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

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

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

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

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

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';

Cách sử dụng DISTINCT để loại bỏ giá trị trùng lắp trong MySQL
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.

Chúc các bạn thành công !

Tags: DISTINCT mysql basic

Chuyên Mục: Sql

Bài viết được đăng bởi webmaster

0