SQL - Mệnh đề LIKE

SQL LIKEmệnh đề được sử 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ử ký tự đại diện. Có hai ký tự đại diện được sử dụng cùng với toán tử LIKE.

  • Dấu phần trăm (%)
  • Dấu gạch dưới (_)

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 số hoặc một ký tự. Các ký hiệu này có thể được sử dụng trong các tổ hợp.

Cú pháp

Cú pháp cơ bản của% và _ như sau:

SELECT FROM table_name
WHERE column LIKE 'XXXX%'

or 

SELECT FROM table_name
WHERE column LIKE '%XXXX%'

or

SELECT FROM table_name
WHERE column LIKE 'XXXX_'

or

SELECT FROM table_name
WHERE column LIKE '_XXXX'

or

SELECT FROM table_name
WHERE column LIKE '_XXXX_'

Bạn có thể kết hợp N số điều kiện bằng cách sử dụng toán tử AND hoặc OR. Ở đây, XXXX có thể là bất kỳ giá trị số hoặc chuỗi nào.

Thí dụ

Bảng sau có một vài ví dụ cho thấy phần WHERE có mệnh đề LIKE khác nhau với các toán tử '%' và '_' -

Sr.No. Tuyên bố & Mô tả
1

WHERE SALARY LIKE '200%'

Tìm bất kỳ giá trị nào bắt đầu bằng 200.

2

WHERE SALARY LIKE '%200%'

Tìm bất kỳ giá trị nào có 200 ở bất kỳ vị trí nào.

3

WHERE SALARY LIKE '_00%'

Tìm bất kỳ giá trị nào có 00 ở vị trí thứ hai và thứ ba.

4

WHERE SALARY LIKE '2_%_%'

Tìm bất kỳ giá trị nào bắt đầu bằng 2 và có độ dài ít nhất 3 ký tự.

5

WHERE SALARY LIKE '%2'

Tìm bất kỳ giá trị nào kết thúc bằng 2.

6

WHERE SALARY LIKE '_2%3'

Tìm bất kỳ giá trị nào có số 2 ở vị trí thứ hai và kết thúc bằng số 3.

7

WHERE SALARY LIKE '2___3'

Tìm bất kỳ giá trị nào trong một số có năm chữ số bắt đầu bằng 2 và kết thúc bằng 3.

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

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

Sau đây là một ví dụ, sẽ hiển thị tất cả các bản ghi từ bảng CUSTOMERS, trong đó SALARY bắt đầu bằng 200.

SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';

Điều này sẽ tạo ra kết quả sau:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
+----+----------+-----+-----------+----------+