2010-11-22 1 views
2

Dies ist ein verwandtes auf eine andere Frage hier gestellt: How to: match (search space) against (join with column from other table)Kann ein Suchbegriff passenden Ausdruck der Arbeit innerhalb einer Join-Bedingung

Aber ich wollte von den Antworten auf eine dieser als Follow-up schreiben, die der Autor sagte, er habe nicht versucht, und um zu sehen, ob jemand es bestätigen könnte.

Klingt wie Sie einen FULLTEXT- passenden Ausdruck in Ihrem Zustand verwenden müssen mitmachen.

Ich habe noch nie eine Volltext Spiel in einem Joinbedingung verwendet, so dass ich diese funktioniert nicht sicher, aber hypothetisch diese könnte es tun:

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

Antwort

0

Ich habe gerade versucht ein Abfrage wie aus Neugierde und es für einen sehr klaren Grund fehlgeschlagen:

AGAINST braucht eine Zeichenfolge zu suchen, und einen optionalen Modifikator, der angibt, welche Art von Suche ausgeführt werden soll. Die Suchzeichenfolge muss eine literale Zeichenfolge sein, keine Variable oder ein Spaltenname. - MySQL Manual on fulltext searches (Hervorhebung von mir)

Check out updated answer Bill Karwin in der Frage, die Sie verwiesen eine Abfrage schlagen eine subselect verwenden, die jede Zeile von Tabelle A wählen würde, dass jeder Wert in einer ‚Term‘ Spalte von Tabelle übereinstimmt B.

Verwandte Themen