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

php mysql toàn văn tìm kiếm nhiều bảng được tham gia bởi id

Bạn có thể tạo 'chế độ xem cụ thể hóa'. http://en.wikipedia.org/wiki/Materialized_view

về cơ bản một bảng là kết quả của JOIN và tạo một chỉ mục văn bản đầy đủ trên đó.

CREATE TABLE materialized (FULLTEXT idx (user_name,department_name)) 
 SELECT u.id,user_name,department_name 
 FROM users u INNER JOIN departments d ON (d.id = dept_id) 

Sau đó, bạn có thể chạy các truy vấn trên bảng đó thay thế ..

SELECT * FROM materialized WHERE MATCH(user_name,department_name) AGAINST('test' IN BOOLEAN MODE)

nhưng ...

Bạn sẽ cần cập nhật bảng định kỳ (hoặc khi các bảng bên dưới cập nhật) - đơn giản nhất là chỉ cần DROP và tạo lại - Hoặc bạn có thể sử dụng TRUNCATE sau đó INSERT INTO ... SELECT ... FROM ... định dạng.

(các kế hoạch phức tạp hơn liên quan đến các trình kích hoạt để giữ cho 'chế độ xem' được cập nhật, hoặc thậm chí xem binlog và phát lại các cập nhật đối với 'chế độ xem')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các giá trị json trong MySQL SUM được nhóm bằng các khóa json

  2. Tương tác 2 bảng:chèn, lấy kết quả, chèn

  3. Xuất bảng mysql sang định dạng SQL?

  4. mysql chọn trong danh sách với regexp / chuỗi con

  5. không được phép trả về tập kết quả từ trình kích hoạt mysql