Bài này cafedev chia sẻ cho ace về cách sử dụngToán tử Like trong SQL để lấy ra dữ liệu theo ý muốn của mình.
Lưu ý: Các bạn tham khảo bài giới thiệu này để lấy dữ liệu mẫu và chạy các ví dụ của toàn bộ series này nha.
Nội dung chính
1. Định nghĩa
Toán tử LIKE được sử dụng trong mệnh đề WHERE để tìm kiếm một mẫu cụ thể trong một cột.
Có hai ký tự đại diện thường được sử dụng cùng với toán tử LIKE:
% – Dấu phần trăm đại diện cho không, một hoặc nhiều ký tự
_ – Dấu gạch dưới thể hiện một ký tự
Lưu ý: MS Access sử dụng dấu hoa thị (*) thay vì dấu phần trăm (%) và dấu chấm hỏi (?) Thay cho dấu gạch dưới (_).
2. Cú pháp
/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
Mẹo: Bạn cũng có thể kết hợp bất kỳ số lượng điều kiện nào bằng cách sử dụng toán tử AND hoặc OR.
Dưới đây là một số ví dụ hiển thị các toán tử LIKE khác nhau với các ký tự đại diện ‘%’ và ‘_’:
LIKE Operator | Description |
---|---|
WHERE CustomerName LIKE ‘a%’ | Tìm bất kỳ giá trị nào bắt đầu bằng “a” |
WHERE CustomerName LIKE ‘%a’ | Tìm bất kỳ giá trị nào kết thúc bằng “a” |
WHERE CustomerName LIKE ‘%or%’ | Tìm bất kỳ giá trị nào có “hoặc” ở bất kỳ vị trí nào |
WHERE CustomerName LIKE ‘_r%’ | Tìm bất kỳ giá trị nào có “r” ở vị trí thứ hai |
WHERE CustomerName LIKE ‘a_%’ | Tìm bất kỳ giá trị nào bắt đầu bằng “a” và có ít nhất 2 ký tự |
WHERE CustomerName LIKE ‘a__%’ | Tìm bất kỳ giá trị nào bắt đầu bằng “a” và có ít nhất 3 ký tự |
WHERE ContactName LIKE ‘a%o’ | Tìm bất kỳ giá trị nào bắt đầu bằng “a” và kết thúc bằng “o” |
Ví dụ: Câu lệnh SQL sau chọn tất cả khách hàng có Tên khách hàng bắt đầu bằng “a”:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
- Câu lệnh SQL sau chọn tất cả các khách hàng có Tên khách hàng kết thúc bằng “a”:
SELECT * FROM Customers
WHERE CustomerName LIKE '%a';
- Câu lệnh SQL sau đây chọn tất cả khách hàng có Tên khách hàng có “hoặc” ở bất kỳ vị trí nào:
/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/
SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';
- Câu lệnh SQL sau chọn tất cả khách hàng có Tên khách hàng có “r” ở vị trí thứ hai:
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
- Câu lệnh SQL sau đây chọn tất cả khách hàng có Tên khách hàng bắt đầu bằng “a” và có ít nhất 3 ký tự:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';
- Câu lệnh SQL sau đây chọn tất cả khách hàng có Tên liên hệ bắt đầu bằng “a” và kết thúc bằng “o”:
SELECT * FROM Customers
WHERE ContactName LIKE 'a%o';
- Câu lệnh SQL sau đây chọn tất cả khách hàng có Tên khách hàng KHÔNG bắt đầu bằng “a”:
/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/
SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'a%';
Lưu ý: Các bạn tham khảo bài giới thiệu này để lấy dữ liệu mẫu và chạy các ví dụ của toàn bộ series này nha. Khi bạn thực hành mà không tìm thấy kết quả và không xảy ra lỗi thì có thể dữ liệu của bạn không tồn tại, vì vậy, bạn có thể insert thêm data vào bảng và thực hành lại nha.
Full series tự học SQL từ cơ bản tới nâng cao tại đây nha.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!