2016-05-10 8 views
1

Ich muss FULL-TEXT-Suche in einer mySQL InnoDB v5.6.20 implementieren.
Ich habe auf zwei varchar (256) Spalten nacheinander ein Volltextindex, nachdem die Tabelle über
ALTER TABLE 'client' ADD FULLTEXT('company') und
ALTER TABLE 'client' ADD FULLTEXT('country')mySQL Volltextsuche Probleme

Wenn ich eine Spalte nach MATCH gegen ein Schlüsselwort ich erwartet verwenden erstellt wurde erhalten Ergebnisse.

SELECT * FROM client WHERE MATCH (company) AGAINST (:keyword) 

Wenn ich zwei Spalte MATCH gegen ein Schlüsselwort bekomme ich no Ergebnis überhaupt.

SELECT * FROM client WHERE MATCH (company, country) AGAINST (:keyword) 

Was mache ich falsch?

+0

Bist Du sicher, dass die 'keyword' sowohl in die Gegenwart "Firma" und "Land" für irgendwelche Aufzeichnungen? –

+0

hm - entweder in der Firma oder im Land. Was vermisse ich? – Ben

+0

Ihr FULLTEXT-Index muss über beide Spalten liegen, nicht wie zwei getrennte Indizes – mitkosoft

Antwort

1

mehrere Spalten innerhalb eines MATCH Putting AND verwenden, wenn Sie also OR (auf Ihrem Kommentar basiert) möchten, können Sie versuchen, die folgenden:

SELECT * 
FROM client 
WHERE MATCH (company) AGAINST (:keyword) OR MATCH (country) AGAINST (:keyword) 
+1

hey Tim - das ist es - du hast meinen Tag gerettet! – Ben

+0

@Ben Froh, dass wir Ihnen behilflich sein können, und vielen Dank für die Verwendung von Stack Overflow. –