Web Cơ Bản

Cách tìm kiếm dữ liệu dựa trên mẫu chuỗi trong MySQL

1) Tìm hiểu khái niệm mẫu chuỗi

- Mẫu chuỗi là một tập hợp gồm những ký tự bình thường được kết hợp với các ký tự đại diện để xây dựng nên một cái mô hình mô tả một dạng chuỗi ký tự nào đó.

✅ Ví dụ như %Comment chính là một mẫu chuỗi, nó dùng để mô tả cho những chuỗi ký tự được kết thúc bởi chữ Comment, còn phía trước chữ Comment thì có thể là không hoặc nhiều ký tự bất kỳ.

- Bên dưới là một số ví dụ minh họa về những chuỗi ký tự thuộc mẫu chuỗi %Comment

  • Thư viện lập trình Comment
  • Nhân 8888Comment
  • Comment
  • . . . .

- Sau khi xem xong ví dụ phía trên thì tôi nghĩ sẽ có một số bạn thắc mắc chức năng của ký tự %, tôi xin giải đáp như sau: "khi chúng ta xác định một mẫu chuỗi, ký tự % sẽ mang vai trò là một ký tự đại diện, nó được dùng để đại diện cho không hoặc nhiều ký tự bất kỳ"

- Dưới đây là bảng mô tả sơ qua về chức năng của hai loại ký tự đại diện được hỗ trợ trong MySQL:

%

- Đại cho cho không hoặc nhiều ký tự bất kỳ.

_

- Đại diện cho một ký tự bất kỳ.

2) Cách tìm kiếm dữ liệu dựa trên mẫu chuỗi

- Thông thường sẽ có một vài trường hợp chúng ta cần phải chọn lọc những hàng mà giá trị dữ liệu của cột trên hàng đó phải chứa mẫu chuỗi được chỉ định, để làm được điều đó thì khi sử dụng lệnh SELECT chọn lọc dữ liệu, chúng ta cần phải kèm theo mệnh đề WHERE với toán tử LIKE như sau:

SELECT column1, column2, column3, . . . .
FROM table_name
WHERE columnN LIKE mẫu chuỗi;

- Trong đó:

  • table_name là tên của cái bảng mà chúng ta muốn lấy dữ liệu.
  • column1, column2, column3 là tên của những cột mà chúng ta muốn truy xuất.
  • columnN là tên của cột mà chúng ta muốn tìm kiếm mẫu chuỗi bên trong nó.

3) Tham khảo một số ví dụ

- Trong bài học này, tôi sẽ sử dụng cái bảng SinhVien như bên dưới để làm một số ví dụ minh họa:

MSSV HoTen GioiTinh Tuoi ThanhPho
1 Nguyễn Bá Nhân Nam 19 Cần Thơ
2 Dũ Văn Thiên Nam 23 Vĩnh Long
3 Nguyễn Hoài Bảo Nam 20 Sóc Trăng
4 Doãn Quốc Thiên Thanh Nữ 22 Bạc Liêu
5 Nguyễn Thành Nhân Nam 19 Hải Phòng
6 Dương Nhật Tuấn Nam 18 Đồng Tháp
7 Trương Mỹ Nhân Nữ 21 Cà Mau
Ví dụ 1:

- Liệt kê những sinh viên có họ Nguyễn, tên Nhân

SELECT * FROM SinhVien WHERE HoTen LIKE "Nguyễn%Nhân";

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới:

MSSV HoTen GioiTinh Tuoi ThanhPho
1 Nguyễn Bá Nhân Nam 19 Cần Thơ
5 Nguyễn Thành Nhân Nam 19 Hải Phòng
Ví dụ 2:

- Liệt kê những sinh viên có họ được bắt đầu bằng chữ D, chứa chữ lót là Thiên

SELECT * FROM SinhVien WHERE HoTen LIKE "D%Thiên_%";

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới:

MSSV HoTen GioiTinh Tuoi ThanhPho
4 Doãn Quốc Thiên Thanh Nữ 22 Bạc Liêu
Ví dụ 3:

- Liệt kê những sinh viên có tên là Bảo hoặc chữ lót là Văn

SELECT * FROM SinhVien WHERE (HoTen LIKE "%Bảo") OR (HoTen LIKE "%_Văn_%");

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới:

MSSV HoTen GioiTinh Tuoi ThanhPho
2 Dũ Văn Thiên Nam 23 Vĩnh Long
3 Nguyễn Hoài Bảo Nam 20 Sóc Trăng
Ví dụ 4:

- Liệt kê những sinh viên không có tên là Nhân.

SELECT * FROM SinhVien WHERE HoTen NOT LIKE "%Nhân";

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới:

MSSV HoTen GioiTinh Tuoi ThanhPho
2 Dũ Văn Thiên Nam 23 Vĩnh Long
3 Nguyễn Hoài Bảo Nam 20 Sóc Trăng
4 Doãn Quốc Thiên Thanh Nữ 22 Bạc Liêu
6 Dương Nhật Tuấn Nam 18 Đồng Tháp

- Khi khai báo một mẫu chuỗi, nếu trong số những ký tự mà chúng ta muốn tìm có chứa ký tự % hoặc ký tự _ thì chúng ta cần phải thêm một dấu gạch chéo ngược phía trước những ký tự đó.

==> Ví dụ như mẫu chuỗi Nguyễn%\_ dùng để mô tả những chuỗi ký tự được bắt đầu bằng chữ Nguyễn, đồng thời phải được kết thúc bởi một ký tự là dấu gạch dưới.