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

Cách thực hiện:khớp (không gian tìm kiếm) với (nối với cột từ bảng khác)

Có vẻ như bạn cần sử dụng biểu thức so khớp FULLTEXT trong điều kiện kết hợp của mình.

Tôi chưa bao giờ sử dụng kết hợp toàn văn bản trong một điều kiện tham gia, vì vậy tôi không chắc điều này sẽ hoạt động, nhưng theo giả thuyết thì điều này có thể làm được:

SELECT DISTINCT c.*
FROM corpuses c JOIN searches s 
  ON (MATCH(c.title, c.body) AGAINST (s.term));

Được rồi, tôi đã thử nó bằng cách sử dụng các định nghĩa bảng của bạn và một số dữ liệu mẫu từ hướng dẫn sử dụng MySQL. Đây là một truy vấn hoạt động (được thử nghiệm với MySQL 5.1.30):

SELECT *
FROM corpuses 
WHERE MATCH(title, body)
  AGAINST ( (SELECT GROUP_CONCAT(term SEPARATOR ' ') FROM searches) 
    IN BOOLEAN MODE);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ASP.NET API:Không có nhà cung cấp cơ sở dữ liệu nào được định cấu hình cho DbContext này

  2. Tháng hoặc ngày tùy chọn trong trường ngày MySQL từ PHP

  3. Làm cách nào để tạo một chuỗi trong MySQL?

  4. AndroidApp và MySqlConnection không hoạt động kết nối.open

  5. VARCHAR so với TEXT trong MySQL