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