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 |
– 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 |
– 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 |
– 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 |
– 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.