Truy vấn lồng nhau (Bài trước)
(Bài tiếp) JOIN nhiều bảng

Toán tử LIKE SQL

Từ khóa LIKE rất hữu ích dùng trong mệnh đề WHERE để tạo ra biểu thức điều kiện tìm kiểm.

Cú pháp cơ bản như sau:

SELECT * FROM Khachhang
WHERE HoTen LIKE 'm%'

Với pattern là mẫu tìm kiếm, các dòng có dữ liệu cột column_name phù hợp với mẫu trả về TRUE.

Mẫu pattern dùng các ký hiệu _ đại diện ký tự, ký hiệu % để đại diện cho có hoặc không một hay nhiều ký tự.

Để rõ hơn xem một số trường hợp sau:

LIKE Operator Diễn tả
WHERE CustomerName LIKE 'a%' Tất các các giá trị bắt đầu bằng ký tự "a"
WHERE CustomerName LIKE '%a' Tất cả giá trị kết thúc bằng ký tự "a"
WHERE CustomerName LIKE '%or%' Bất kỳ giá trị nào có chứa "or" bên trong
WHERE CustomerName LIKE '_r%' Các giá trị có chứa "r" ở vị trí thứ 2
WHERE CustomerName LIKE 'a_%_%' Giá trị bắt đầu bằng "a" và có chiều dài tối thiểu 3
WHERE ContactName LIKE 'a%o' Giá trị bắt dầu bằng "a" và kết thúc bằng "o"

Ví dụ 1 (LIKE)

Tìm họ tên bắt đầu bằng ký tự m trong danh sách khách hàng ở bảng Khachhang

SELECT * FROM Khachhang
WHERE HoTen LIKE 'm%';

Kết quả

KhachhangIDHoTenTenLienLacDiachiThanhphoMaBuudienQuocGia
11Mạc Trung ĐứcMạc Trung Đứcivwfcu Đồng NaiĐồng Nai500Việt Nam
20Mai Tùng BáchMai Tùng Báchfxrtrx Đồng ThápĐồng Tháp100Đức

Có một file CSDL mẫu dạng SQLite, bạn có thể tải về thực hành: CSDL SQLite mẫu.

Ví dụ 2 (LIKE)

Tìm các khách hàng mà tên không có chứa thị ở bảng Khachhang

SELECT * FROM Khachhang
WHERE HoTen NOT LIKE '%thị%'

Chú ý có sử dụng thêm toán tử phủ định NOT

Kết quả

KhachhangIDHoTenTenLienLacDiachiThanhphoMaBuudienQuocGia
1Đặng Tuấn AnhĐặng Tuấn Anhnkhbiq Bà Rịa - Vũng TàuBà Rịa - Vũng Tàu222Đức
2Hoàng Đức AnhHoàng Đức Anhu Kiên GiangKiên Giang100Đức
3Lưu Trang AnhLưu Trang Anhh Gia LaiGia Lai222Mỹ

Đăng ký nhận bài viết mới
Truy vấn lồng nhau (Bài trước)
(Bài tiếp) JOIN nhiều bảng