Toán tử LIKE và NOT LIKE trong 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à:
_
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ể.
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?
Bài viết này được đăng tại [free tuts .net]
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.
Cùng chuyên mục:
Phiên làm việc là gì trong SQL
Trong bài viết này mình sẽ giải thích phiên làm việc là gì trong SQL…