(LIKE) Truy xuất dữ liệu dựa theo chuỗi trong MySQL
Từ khóa LIKE được dùng để truy xuất dữ liệu dựa theo một quy tắc tìm kiếm chuỗi . Cú pháp SELECT * FROM name_table WHERE name_column LIKE chuỗi_muốn_tìm; Ví dụ Chúng ta có một bảng sinh_vien như sau: (Bạn có thể bấm vào đây để download câu lệnh tạo bảng như bên dưới) ...
Từ khóa LIKE được dùng để truy xuất dữ liệu dựa theo một quy tắc tìm kiếm chuỗi.
Cú pháp
SELECT * FROM name_table WHERE name_column LIKE chuỗi_muốn_tìm;
Ví dụ
Chúng ta có một bảng sinh_vien như sau:
(Bạn có thể bấm vào đây để download câu lệnh tạo bảng như bên dưới)
Full_name | Gender | Age | City |
---|---|---|---|
Nguyen Thanh Nhan | Nam | 19 | Can Tho |
Pham Thu Huong | Nu | 20 | Vinh Long |
Nguyen Nhu Ngoc | Nu | 20 | Soc Trang |
Bui Thanh Bao | Nam | 19 | Soc Trang |
Le My Nhan | Nu | 22 | Can Tho |
Tan Thuc Bao | Nam | 35 | An Giang |
Trinh Giao Kim | Nam | 44 | Bac Lieu |
Ví dụ
Truy xuất những sinh viên có họ tên là "Tan Thuc Bao"
SELECT * FROM sinh_vien WHERE Full_name LIKE "Tan Thuc Bao";
Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:
Full_name | Gender | Age | City |
---|---|---|---|
Tan Thuc Bao | Nam | 35 | An Giang |
Các ký tự đại diện trong quy tắc tìm kiếm chuỗi
Ký tự đại diện được dùng để đại diện cho một hoặc nhiều ký tự trong một chuỗi.
Dưới đây là danh sách các ký tự đại diện:
Ký tự đại diện | Mô tả |
---|---|
% | Đại diện cho không hoặc nhiều ký tự |
_ | Đại kiện cho một ký tự |
Một số ví dụ
Chúng ta tiếp tục sử dụng bảng sinh_vien ở phía trên để làm ví dụ.
Ví dụ 1
Truy xuất những sinh viên mà họ tên bắt đầu bằng chữ "Nguyen"
SELECT * FROM sinh_vien WHERE Full_name LIKE "Nguyen%";
Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:
Full_name | Gender | Age | City |
---|---|---|---|
Nguyen Thanh Nhan | Nam | 19 | Can Tho |
Nguyen Nhu Ngoc | Nu | 20 | Soc Trang |
Ví dụ 2
Truy xuất những sinh viên mà họ tên kết thúc bằng chữ "Bao" hoặc "Huong"
SELECT * FROM sinh_vien WHERE (Full_name LIKE "%Bao") OR (Full_name LIKE "%Huong");
Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:
Full_name | Gender | Age | City |
---|---|---|---|
Pham Thu Huong | Nu | 20 | Vinh Long |
Bui Thanh Bao | Nam | 19 | Soc Trang |
Tan Thuc Bao | Nam | 35 | An Giang |
Ví dụ 3
Truy xuất những sinh viên mà họ tên có chứa chữ "Thanh"
SELECT * FROM sinh_vien WHERE Full_name LIKE "%Thanh%";
Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:
Full_name | Gender | Age | City |
---|---|---|---|
Nguyen Thanh Nhan | Nam | 19 | Can Tho |
Bui Thanh Bao | Nam | 19 | Soc Trang |
Ví dụ 4
Truy xuất những sinh viên mà trong họ tên có chứa ít nhất 2 chữ T
SELECT * FROM sinh_vien WHERE Full_name LIKE "%T%T%";
Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:
Full_name | Gender | Age | City |
---|---|---|---|
Tan Thuc Bao | Nam | 35 | An Giang |
Ví dụ 5
Truy xuất những sinh viên mà ký tự thứ 2 trong họ tên là "e"
SELECT * FROM sinh_vien WHERE Full_name LIKE "_e%";
Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:
Full_name | Gender | Age | City |
---|---|---|---|
Le My Nhan | Nu | 22 | Can Tho |
Ví dụ 6
Truy xuất những sinh viên mà 3 ký tự ở vị trí 345 trong họ tên là "inh" hoặc 2 ký tự gần ký tự cuối là "go"
SELECT * FROM sinh_vien WHERE (Full_name LIKE "__inh%") OR (Full_name LIKE "%go_");
Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:
Full_name | Gender | Age | City |
---|---|---|---|
Nguyen Nhu Ngoc | Nu | 20 | Soc Trang |
Trinh Giao Kim | Nam | 44 | Bac Lieu |
Từ khóa NOT LIKE
Cách sử dụng từ khóa NOT LIKE với các ký tự đại diện cũng giống như cách sử dụng từ khóa LIKE.
Tuy nhiên về mặt ý nghĩa thì từ khóa NOT LIKE trái ngược với từ khóa LIKE.
Từ khóa NOT LIKE có nghĩa là KHÔNG GIỐNG VỚI CHUỖI MUỐN TÌM.
Ví dụ
Truy xuất những sinh viên mà họ tên không có chứa chữ "Thanh"
SELECT * FROM sinh_vien WHERE Full_name NOT LIKE "%Thanh%";
Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:
Full_name | Gender | Age | City |
---|---|---|---|
Pham Thu Huong | Nu | 20 | Vinh Long |
Nguyen Nhu Ngoc | Nu | 20 | Soc Trang |
Le My Nhan | Nu | 22 | Can Tho |
Tan Thuc Bao | Nam | 35 | An Giang |
Trinh Giao Kim | Nam | 44 | Bac Lieu |