Toán tử LIKE và NOT LIKE trong MySQL là toán tử rất phổ biến để tìm kiếm dựa trên khớp chuỗi trong cơ sở dữ liệu MySQL. Trong bài viết này, chúng ta sẽ tìm hiểu về cách sử dụng hai toán tử này.
Toán tử Like và Not Like
Sử dụng LIKE trong MySQL
Lệnh LIKE trong MySQL được sử dụng để tìm kiếm khớp chuỗi các giá trị trong một cột dựa trên một chuỗi ký tự nào đó.
Cú pháp lệnh Like
ten_cot LIKE 'chuoi_vi_du';
Trong đó:
- ten_cot: Là tên cột.
- chuoi_vi_du: Là chuỗi muốn tìm kiếm khớp chuỗi giá trị trong cột.
Trong chuỗi like bạn có thể sử dụng các kí tự để đại diện(thay thế) như sau.
- %: Đại diện cho 1 chuỗi ký tự bất kì độ dài bất kì.
- _: Đại diện cho 1 ký tự bất kì.
Ví dụ sử dụng
Chúng ta có bảng users như bên dưới đây.
Ví dụ 1, Để tìm kiếm user có tên là Nguyen van quan, ta sẽ viết lệnh SQL như sau:
SELECT * FROM `users`
WHERE name LIKE "Nguyen van quan"
Kết quả truy vấn
Ví dụ 2, Vậy để tìm kiếm những user có tên bắt đầu bằng họ Nguyen, viết câu lệnh SQL như sau:
SELECT * FROM `users`
WHERE name LIKE "Nguyen%"
Kết quả khi thực hiện truy vấn
Trong câu lệnh like bên trên “Nguyen%“, có nghĩa chuỗi này bắt đầu bằng từ Nguyen và sau đó là bất kì ký nào nào với độ dài n(% đại diện cho chuỗi ký tự bất kì độ dài n).
Ví dụ 3, ta sẽ tìm kiếm các user có chứa từ Duc trong tên. Viết lệnh SQL như sau:
SELECT * FROM `users`
WHERE name LIKE "%Duc%"
Kết quả truy vấn
Chuỗi like “%Duc%” sẽ khớp với tất cả các tên mà có chứa từ Duc.
Sử dụng NOT LIKE trong MySQL
Đơn giản NOT LIKE là phủ định của LIKE, tức nó hoạt động đối ngược với toán tử LIKE. Like tìm kiếm khớp chuỗi, not like tìm kiếm không khớp chuỗi.
Ví dụ, Tương tự như ví dụ 3 trong toán tử like bên trên, sử dụng not like để tìm kiếm tất cả các user có tên không chứa từ Duc trong tên, ta viết lệnh SQL như sau:
SELECT * FROM `users`
WHERE name NOT LIKE "%Duc%"
Kết quả thực hiện truy vấn
Như vậy chúng ta vừa cùng nhau tìm hiểu về hai toán tử LIKE và NOT LIKE trong MySQL cùng các ví dụ minh họa đơn giản. Hy vọng qua bài viết này bạn có thể nắm rõ và biết cách áp dụng vào bài toán thực tế. Nếu còn bất cứ thắc mắc nào hãy để lại comment bên dưới mọi người sẽ cùng giải đáp nhé! ChÚc BạN HọC tỐt!!
[XEM TẤT CẢ CÁC BÀI HƯỚNG DẪN MYSQL TẠI ĐÂY]
XEM THÊM Toán tử OR, AND và NOT – Toán tử hoặc, và, phủ định Thuộc tính AUTO_INCREMENT – Giá trị tự tăng dần Câu lệnh INSERT INTO trong MySQL – Lệnh chèn dữ liệu vào bảng Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL Câu lệnh SELECT trong MySQL – Khi nào thì dùng lệnh SELECT Toán tử so sánh trong MySQL – So sánh bằng, lớn hơn, nhỏ hơn