1. Toán tử LIKE

Toán tử LIKE là toán tử được sử dụng sau mệnh đề WHERE trong các câu lệnh truy vấn. Trong toán tử LIKE có 2 ký tự thường được sử dụng đó là:

  • Ký tự phần trăm (%) đại diện cho không, một hoặc nhiều ký tự
  • Ký tự gạch dưới (_) đại diện cho một ký tự đơn

Cú pháp của toán tử LIKE như sau:

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

Dưới đây là bảng thể hiện các cách sử dụng ký tự phần trăm (%) và ký tự gạch dưới (_) cho toán tử LIKE

LIKE Operator Description
WHERE ColumnName LIKE ‘a%’ Tìm bất kỳ giá trị nào trong cột bắt đầu với “a”
WHERE ColumnName LIKE ‘%a’ Tìm bất kỳ giá trị nào trong cột kết thúc với “a”
WHERE ColumnName LIKE ‘%or%’ Tìm bất kỳ giá trị nào có từ “or” ở bất kỳ vị trí nào
WHERE ColumnName LIKE ‘_r%’ Tìm bất kỳ giá trị nào có “r” ở vị trí tiếp theo
WHERE ColumnName 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 ColumnName LIKE ‘a__%’ Tìm bất kỳ giá trị nào bắt đầu bằng “a” và có độ dài ít nhất 3 ký tự
WHERE ColumnName 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”

2. Ví dụ toán tử LIKE

Dưới đây là bảng KhachHang bao gồm các cột: ID, TenKH, DiaChi, ThanhPho, SoDienThoai

ID TenKH DiaChi ThanhPho SoDienThoai
1 Nguyen Van A Tay Ho Ha Noi 0888999888
2 Nguyen Van B Quan 5 Ho Chi Minh 0988988988
3 Nguyen Van C Quan 7 Ho Chi Minh 0899899899
4 Nguyen Van D Bac Tu Liem Ha Noi 0788788788
5 Nguyen Van E Ngo Quen Hai Phong 0858585858
6 Nguyen Van F Ngu Hanh Son Da Nang 0969696969
7 Nguyen Van G Tay Ho Ha Noi 0838383838

Câu lệnh SQL sau chọn tất cả khách hàng có địa chỉ bắt đầu bằng ký tự “n

SELECT * FROM KhachHang
WHERE TenKH LIKE 'n%';

Kết quả:

ID TenKH DiaChi ThanhPho SoDienThoai
5 Nguyen Van E Ngo Quen Hai Phong 0858585858
6 Nguyen Van F Ngu Hanh Son Da Nang 0969696969

Câu lệnh SQL sau chọn tất cả khách hàng có thành phố kết thúc bằng ký tự “i

SELECT * FROM KhachHang 
WHERE ThanhPho LIKE '%i';

Kết quả:

ID TenKH DiaChi ThanhPho SoDienThoai
1 Nguyen Van A Tay Ho Ha Noi 0888999888
4 Nguyen Van D Bac Tu Liem Ha Noi 0788788788
7 Nguyen Van G Tay Ho Ha Noi 0838383838

Câu lệnh SQL sau chọn tất cả khách hàng có địa chỉ bao gồm ký tự “Qu” ở bất kỳ vị trí nào:

SELECT * FROM KhachHang
WHERE DiaChi LIKE '%Qu%';

Kết quả:

ID TenKH DiaChi ThanhPho SoDienThoai
2 Nguyen Van B Quan 5 Ho Chi Minh 0988988988
3 Nguyen Van C Quan 7 Ho Chi Minh 0899899899
5 Nguyen Van E Ngo Quen Hai Phong 0858585858
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 ký tự “n” và kết thúc bằng “a“:
SELECT * FROM KhachHang 
WHERE TenKH LIKE 'n%a';

Kết quả:

ID TenKH DiaChi ThanhPho SoDienThoai
1 Nguyen Van A Tay Ho Ha Noi 0888999888

Câu lệnh SQL sau chọn tất cả khách hàng có thành phố có ký tự “a” ở vị trí thứ hai:

SELECT * FROM KhachHang
WHERE ThanhPho LIKE '_a%';

Kết quả:

ID TenKH DiaChi ThanhPho SoDienThoai
1 Nguyen Van A Tay Ho Ha Noi 0888999888
4 Nguyen Van D Bac Tu Liem Ha Noi 0788788788
5 Nguyen Van E Ngo Quen Hai Phong 0858585858
6 Nguyen Van F Ngu Hanh Son Da Nang 0969696969
7 Nguyen Van G Tay Ho Ha Noi 0838383838
Câu lệnh SQL sau chọn tất cả khách hàng có địa chỉ KHÔNG bắt đầu bằng “n“:
SELECT * FROM KhachHang
WHERE DiaChi NOT LIKE 'n%';

Kết quả:

ID TenKH DiaChi ThanhPho SoDienThoai
1 Nguyen Van A Tay Ho Ha Noi 0888999888
2 Nguyen Van B Quan 5 Ho Chi Minh 0988988988
3 Nguyen Van C Quan 7 Ho Chi Minh 0899899899
4 Nguyen Van D Bac Tu Liem Ha Noi 0788788788
7 Nguyen Van G Tay Ho Ha Noi 0838383838
Mẹo: Bạn cũng có thể kết hợp bất kỳ điều kiện nào bằng cách sử dụng toán tử AND hoặc toán tử OR