Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL trả về đối sánh từ chính xác từ nội dung văn bản

Câu trả lời đúng có lẽ là tìm kiếm toàn văn.

Tuy nhiên, có hai lưu ý. Nếu bạn có các chuỗi ngắn, chẳng hạn như mô tả sản phẩm hoặc nhận xét của người dùng và muốn sử dụng like , bạn có thể làm như sau:

where concat(' ', txt, ' ') like concat('% ', $word, ' %')

Tuy nhiên, điều này giả định rằng các dấu phân cách là khoảng trắng. Vì vậy, nó sẽ không tìm thấy "Xin chào". Bạn có thể khắc phục điều này bằng cách thực hiện:

where concat(' ', replace(txt, ',' ' '), ' ') like concat('% ', $word, ' %')

Nhưng bạn sẽ nhanh chóng thấy rằng đây là một nỗi đau. Do đó:tìm kiếm toàn văn.

Thứ hai, nếu bạn thực sự đang lưu trữ từ khóa trong cột, thì giải pháp đơn giản hơn. Đừng làm vậy. Tạo bảng nối có một hàng cho mỗi hàng trong bảng gốc và một hàng cho mỗi từ khóa. Lưu trữ danh sách trong chuỗi là một ý tưởng tồi trong SQL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có thể tải ứng dụng phòng trò chuyện PHP / MYSQL ở đâu

  2. Đếm số hàng có cùng giá trị

  3. Cách sử dụng thẻ JSTL sql

  4. tải nhiều tệp hình ảnh lên thư viện php mysql

  5. Cách nhận truy vấn để chuyển đến các trang tiếp theo khi phân trang kết quả