18/08/2018, 11:04

(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
0