SQL - Toán tử ký tự đại diện
Chúng ta đã thảo luận về toán tử LIKE SQL, đượ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.
SQL hỗ trợ hai toán tử ký tự đại diện kết hợp với toán tử LIKE được giải thích chi tiết trong bảng sau.
Sr.No. | Ký tự đại diện & Mô tả |
---|---|
1 | The percent sign (%) Khớp một hoặc nhiều ký tự. Note - MS Access sử dụng ký tự đại diện dấu hoa thị (*) thay vì ký tự đại diện dấu phần trăm (%). |
2 | The underscore (_) Khớp một ký tự. Note - MS Access sử dụng dấu chấm hỏi (?) Thay vì dấu gạch dưới (_) để khớp với một ký tự bất kỳ. |
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 toán tử '%' 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ử VÀ hoặc HOẶC. Ở đây, XXXX có thể là bất kỳ giá trị số hoặc chuỗi nào.
Thí dụ
Bảng sau đây có một số ví dụ cho thấy phần WHERE có cá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 sau đâ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 |
+----+----------+-----+-----------+----------+
Khối mã sau là một ví dụ, khối này 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 |
+----+----------+-----+-----------+----------+