Lệnh LIKE trong SQL

Trong SQL, toán tử LIKE được dùng để so sánh một giá trị với các giá trị tương tự bằng cách sử dụng các toán tử đại diện (wildcard). Toán tử LIKE thường được sử dụng trong mệnh đề WHERE để tìm kiếm một mẫu được chỉ định trong một cột.

Có 2 ký tự đại diện được sử dụng trong toán tử LIKE, những ký tự này có thể được sử dụng kết hợp cùng với nhau:

  • Phần trăm (%): Đại diện cho một chuỗi kí tự với độ dài bất kì (bao gồm cả độ dài 0).
  • Dấu gạch dưới (_): Đại diện cho 1 ký tự đơn lẻ.

Lưu ý: MS Access sử dụng dấu hoa thị (*) thay vì dùng dấu phần trăm (%); và dấu hỏi (?) thay cho dấu gạch dưới (_).

Cú pháp lệnh LIKE trong SQL

Cú pháp cơ bản của lệnh LIKE như sau:

SELECT cot1, cot2,.... cotn
FROM ten_bang
WHERE ten_cot LIKE [mẫu so sánh];

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, bằng cách kết hợp các ký tự đại diện '%' và '_':

Mẫu so sánhMô tả
LIKE 'qtm%'
Tìm giá trị bắt đầu bằng "qtm"
LIKE '%qtm'
Tìm giá trị kết thúc bằng "qtm"
LIKE '%qtm%'
Tìm giá trị có "qtm" ở bất kỳ vị trí nào
LIKE '_qtm%'
Tìm giá trị có "qtm" ở vị trí thứ hai
LIKE 'q_%'
Tìm giá trị bắt đầu bằng "q" và có ít nhất 2 ký tự
LIKE 'q__%'
Tìm giá trị bắt đầu bằng "q" và có độ dài ít nhất 3 ký tự
LIKE 'q%q'
Tìm giá trị bắt đầu bằng "q" và kết thúc bằng "q"

Trong những ví dụ trên có thể thay qtmq bằng bất kì ký tự nào mà bạn thấy phù hợp.

Ví dụ về LIKE trong SQL

Chúng ta hãy lấy một ví dụ thực tế, xem xét bảng NHANVIEN có các bản ghi như dưới đây.

+----+----------+-----+-----------+----------+
| ID | TEN      |TUOI | DIACHI    | LUONG    |
+----+----------+-----+-----------+----------+
|  1 | Thanh    |  32 | Haiphong  |  2000.00 |
|  2 | Loan     |  25 | Hanoi     |  1500.00 |
|  3 | Nga      |  23 | Hanam     |  2000.00 |
|  4 | Manh     |  25 | Hue       |  6500.00 |
|  5 | Huy      |  27 | Hatinh    |  8500.00 |
|  6 | Cao      |  22 | HCM       |  4500.00 |
|  7 | Lam      |  24 | Hanoi     | 10000.00 |
+----+----------+-----+-----------+----------+

Ví dụ hiển thị tất cả các bản ghi từ bảng NHANVIEN mà LUONG bắt đầu bằng 200, ta thực hiện như sau:

SELECT * FROM NHANVIEN
WHERE LUONG LIKE '200%';

Kết quả trả về hiển thị là:

+----+----------+-----+-----------+----------+
| ID | TEN      |TUOI | DIACHI    | LUONG    |
+----+----------+-----+-----------+----------+
|  1 | Thanh    |  32 | Haiphong  |  2000.00 |
|  3 | Nga      |  23 | Hanam     |  2000.00 |
+----+----------+-----+-----------+----------+

Tiếp theo, ta cần xem danh sách những người có tên DIACHI bắt đầu bằng chữ H và kết thúc là chữ M:

SELECT * FROM NHANVIEN
WHERE LUONG LIKE 'H%M';

Bảng kết quả sẽ như sau:

+----+----------+-----+-----------+----------+
| ID | TEN      |TUOI | DIACHI    | LUONG    |
+----+----------+-----+-----------+----------+
|  3 | Nga      |  23 | Hanam     |  2000.00 |
|  6 | Cao      |  22 | HCM       |  4500.00 |
+----+----------+-----+-----------+----------+

Trong phần tiếp theo, chúng ta sẽ tìm hiểu về câu lệnh TOP, các bạn nhớ theo dõi nhé.

Thứ Sáu, 05/08/2022 14:34
4,56 👨 25.253
0 Bình luận
Sắp xếp theo