06/04/2021, 14:50

án tử LIKE và NOT LIKE trong SQL - Ngôn ngữ truy vấn T-SQL

Trong bài này chúng ta sẽ tìm hiểu lệnh LIKE, lệnh này dùng để so khớp một chuỗi theo một định dạng cho trước (chuỗi mẫu). Chuỗi mẫu sẽ sử dụng những ký tự đại diện và so sánh với chuỗi gốc. 1. Like trong T-SQL Phạm vi bài này ta chỉ học hai kí tự đại diện đó là: ...

Trong bài này chúng ta sẽ tìm hiểu lệnh LIKE, lệnh này dùng để so khớp một chuỗi theo một định dạng cho trước (chuỗi mẫu). Chuỗi mẫu sẽ sử dụng những ký tự đại diện và so sánh với chuỗi gốc.

1. Like trong T-SQL

Phạm vi bài này ta chỉ học hai kí tự đại diện đó là:

  • _ là ký tự đại diện cho một ký tự bất kỳ.
  • % là ký tự dại diện cho một hoặc nhiều ký tự bất kì.

Ngoài ra bạn có thể sử dung biểu thức chính quy, nhưng vì nó hơi khó nên mình sẽ trình bày ở một bài khác, hoặt là sẽ được học tại một bộ môn SQL cụ thể.

Cú pháp
SELECT columns_list
FROM table_name
WHERE column_name LIKE "chuoi_mau"

Trong đó chuoi_mau là  chuỗi mà bạn tạo ra để so sánh với chuỗi gốc, còn column_name và table_name là tên các columns và tên table, nó quá quen thuộc với bạn rồi phải không nào?

Ví dụ: Lấy danh sách khách hàng có họ Nguyễn.

SELECT * FROM CUSTOMER 
WHERE NAME LIKE "Nguyen%"

2. Not Like trong T-SQL

NOT LIKE sẽ có tác dụng phủ định với lệnh LIKE, tức là nếu biểu mẫu so khớp sai thì dòng dữ liệu đó sẽ được chọn.

Ví dụ: Lấy danh sách sinh viên có tên không được bắt đầu bằng chữ A.

SELECT * FROM STUDENTS
WHERE FIRST_NAME NOT LIKE "A%"

3. Một vài ví dụ khác với Like trong SQL

Mình sẽ đưa thêm một vài ví dụ nữa để bạn tham khảo nhé.

Ví dụ 1: Lấy tất cả những khách hàng có tên bắt đầu bằng chữ A.

SELECT * FROM CUSTOMER 
WHERE FIRST_NAME LIKE "a%"

Ví dụ 2:  Lấy khách hàng có tên là một ký tự duy nhất. Vi dụ tên A, Ý, ...

SELECT * FROM CUSTOMER 
WHERE FIRST_NAME LIKE "_"

Ví dụ 3: Lấy danh sách bài viết có tiêu đề xuất hiện chữ Hà Nội.

SELECT * FROM POSTS
WHERE TITLE LIKE "%Ha Noi%"

Lệnh này khá hay phải không các bạn, nó thường được dùng để tìm kiếm dữ liệu trong chuỗi. Tuy nhiên về mặt tốc độ thì nó khá chậm, vì vậy các hệ quản trị CSDL đã đưa ra những kỹ thuật như full text search để giúp tìm kiếm nhanh hơn.

Trịnh Tiến Mạnh

27 chủ đề

6824 bài viết

Cùng chủ đề
0