sql >> Database teknologi >  >> RDS >> Mysql

php mysql fuldtekst søg flere tabel sammen med id

Du kan oprette en 'materialiseret visning'.http://en.wikipedia.org/wiki/Materialized_view

dybest set en tabel, der er resultaterne af JOIN, og opret et fuldtekstindeks på det.

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) 

Du kan derefter køre forespørgsler på den tabel i stedet..

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

men...

Du bliver nødt til at opdatere tabellen med jævne mellemrum (eller når de underliggende tabeller opdateres) - det nemmeste er bare at DROP og genskab - Eller du kan bruge TRUNCATE derefter INSERT INTO ... SELECT ... FROM ... format.

(mere komplicerede skemaer involverer triggere til at holde 'visningen' opdateret, eller endda se binlogen og genafspille opdateringer mod 'visningen')



  1. Generering og læsning af stregkode

  2. Escape-værdier i SQL-forespørgsler (C# med SQL-forbindelse)

  3. Hvordan kan jeg tilføje ON SLET-begrænsning på tabellen?

  4. Vælg kolonner fra én tabel baseret på kolonnenavnene fra en anden tabel