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

mySQL MATCH trên nhiều bảng

  • Bạn không thể xác định chỉ mục văn bản đầy đủ (hoặc bất kỳ loại chỉ mục nào) trên nhiều bảng trong MySQL. Mỗi định nghĩa chỉ mục tham chiếu chính xác một bảng. Tất cả các cột trong một chỉ mục văn bản đầy đủ nhất định phải từ cùng một bảng.

  • Các cột được đặt tên làm đối số cho MATCH () hàm phải là một phần của một chỉ mục toàn văn bản. Bạn không thể sử dụng một lệnh gọi tới MATCH () để tìm kiếm tất cả các cột là một phần của tất cả các chỉ mục văn bản đầy đủ trong cơ sở dữ liệu của bạn.

  • Fulltext chỉ lập chỉ mục các cột chỉ mục được xác định bằng CHAR , VARCHAR TEXT kiểu dữ liệu.

  • Bạn có thể xác định một chỉ mục văn bản đầy đủ trong mỗi bảng.

Ví dụ:

  TẠO danh mục BẢNG (id KHÓA CHÍNH SERIAL, tên VARCHAR (100), FULLTEXT INDEX ftcat (name)); TẠO BẢNG host_types (id KHÓA CHÍNH SERIAL, category_id BIGINT UNSIGNED, name VARCHAR (100), FULLTEXT INDEX ftht (name)); TẠO máy chủ BẢNG (id KHÓA CHÍNH SERIAL, host_id BIGINT UNSIGNED, category_id BIGINT UNSIGNED, name VARCHAR (100), FULLTEXT INDEX fthost (name)); TẠO sản phẩm BẢNG (id SERIAL PRIMARY KEY, name VARCHAR (100 ), từ khóa VARCHAR (100), uid VARCHAR (100), mô tả VARCHAR (100), INTEGER số lượng, giá NUMERIC (9,2), host_id BIGINT UNSIGNED, FULLTEXT INDEX ftprod (tên, từ khóa, mô tả, uid));  

Và sau đó, bạn có thể viết một truy vấn sử dụng từng chỉ mục toàn văn tương ứng:

« 'cụm từ tìm kiếm') dưới dạng hscore, MATCH (products.name, products.keywords, products.description, products.uid) LẠI ('cụm từ tìm kiếm') dưới dạng điểm .host_id =host_types.idLEFT THAM GIA danh mục TRÊN host_types.category_id =category.id TRẬN ĐẤU (category.name) LẠI ('cụm từ tìm kiếm') HOẶC TRẬN (host_types.name) LẠI ('cụm từ tìm kiếm') HOẶC TRẬN ĐẤU (hosts.name) LẠI ('cụm từ tìm kiếm') HOẶC TRẬN (products.name, products.keywords, products.description, products.uid) CHỐNG LẠI ('cụm từ tìm kiếm') ĐẶT HÀNG THEO điểm số DESC;

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Theo dõi các kết nối đi

  2. một bảng cố định có nhiều cột so với bảng trừu tượng linh hoạt

  3. cập nhật các cột có số thứ tự mysql

  4. truy vấn mysql của một ngày, giữa hai trường ngày

  5. Làm cách nào để chuyển đổi MySQL DB sang XML?