sql >> Database >  >> RDS >> Mysql

How to:match (zoekruimte) met (join met kolom uit andere tabel)

Het klinkt alsof je een FULLTEXT-overeenkomstige expressie moet gebruiken in je join-voorwaarde.

Ik heb nog nooit een fulltext-overeenkomst gebruikt in een join-voorwaarde, dus ik weet niet zeker of dit zal werken, maar hypothetisch zou dit het kunnen doen:

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

Oké, ik heb het geprobeerd met behulp van uw tabeldefinities en enkele voorbeeldgegevens uit de MySQL-handleiding. Hier is een zoekopdracht die werkt (getest met MySQL 5.1.30):

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



  1. Juiste manier om te vragen of mysql_num_rows in PHP is

  2. Varbinary versus Blob in MySQL

  3. Android Room Database, haal specifieke waarde op van het laatst ingevoerde record

  4. PostgreSQL incrementele back-up en point-in-time herstel