sql >> Databáze >  >> RDS >> Mysql

Jak:porovnat (vyhledat mezeru) proti (připojit se ke sloupci z jiné tabulky)

Zní to, jako byste v podmínce spojení potřebovali použít FULLTEXTOVÝ odpovídající výraz.

Nikdy jsem nepoužil fulltextovou shodu ve stavu spojení, takže si nejsem jistý, že to bude fungovat, ale hypoteticky by to mohlo fungovat takto:

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

Dobře, zkusil jsem to pomocí vašich definic tabulek a několika ukázkových dat z manuálu MySQL. Zde je dotaz, který funguje (testováno s MySQL 5.1.30):

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



  1. získávání db:SQLSTATE[HY000] [2002] Chyba připojení odmítnuta na Mac s MAMP

  2. nelze se připojit k mysql pomocí php

  3. Laravel Query Builder – Jak mohu sečíst?

  4. Vytvořit podkategorii select box onChange