Giới thiệu
Để tìm kiếm nhiều từ khóa trong cùng một cột, bạn có thể sử dụng mệnh đề WHERE kết hợp với nhiều điều kiện LIKE và toán tử OR. Dưới đây là ví dụ minh họa chi tiết.
1. Tạo bảng dữ liệu
mysql> create table DemoTable1536 (
-> Sentence text
-> );
Query OK, 0 rows affected (0.51 sec)
2. Chèn dữ liệu mẫu
mysql> insert into DemoTable1536 values('I like MySQL database.');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1536 values('Java is an Object Oriented Programming Language');
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable1536 values('I only like data structure');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable1536 values('MongoDB is NoSQL database');
Query OK, 1 row affected (0.46 sec)
3. Xem toàn bộ dữ liệu
mysql> select * from DemoTable1536;
Kết quả:
+--------------------------------------------------+ | Sentence | +--------------------------------------------------+ | I like MySQL database. | | Java is an Object Oriented Programming Language | | I only like data structure | | MongoDB is NoSQL database | +--------------------------------------------------+ 4 rows in set (0.00 sec)
4. Truy vấn tìm kiếm nhiều từ khóa
Sử dụng nhiều điều kiện LIKE với OR để tìm các hàng chứa bất kỳ từ khóa nào trong số: like, database, data.
mysql> select * from DemoTable1536
-> where (Sentence like '%like%')
or (Sentence like '%database%')
or (Sentence like '%data%');
5. Kết quả truy vấn
+----------------------------+ | Sentence | +----------------------------+ | I like MySQL database. | | I only like data structure | | MongoDB is NoSQL database | +----------------------------+ 3 rows in set (0.00 sec)
Giải thích: Truy vấn trả về 3 hàng phù hợp vì:
- Hàng 1 chứa cả "like" và "database"
- Hàng 3 chứa "like" và "data"
- Hàng 4 chứa "database"
- Hàng 2 không chứa từ khóa nào nên bị loại trừ
Lưu ý: Cách này phù hợp cho tập dữ liệu nhỏ. Với dữ liệu lớn, nên sử dụng Full-text Search để hiệu suất tốt hơn.