2009-08-23 6 views
1

Ich habe den Code untenSuche MySQL Query

SELECT * FROM table WHERE MATCH(message) AGAINST ('Hello*') 

Wenn die Meldung Zeichenfolge wie dieser ist

"HelloWhatsHappening" 

Es Arbeit etwas

zurückkehren dosent aber wenn ich

"Hello WhatsHappening" 

Es funktioniert gut

Es funktioniert auch, wenn die Zeichenfolge als solche ist:

"Hello= WhatsHappening" 

Irgendwelche Ideen?

+0

Sollte ich eine Like-Abfrage verwenden, indem Sie alle oben genannten Wörter in ein Array von Wörtern aufteilen, aus denen gesucht werden soll. Aber wie passen Sie die am besten zusammen? –

Antwort

2

Sie müssen Ihre Abfrage mit einem Platzhalter angeben und die Anweisung "IN BOOLEAN MODE" hinzufügen. Wie folgt aus:

SELECT * FROM table WHERE MATCH(message) AGAINST ('Hello*' IN BOOLEAN MODE) 

Sie könnten auch Probleme haben die Suche nach hallo, weil es eines der stop words in MySQL ist. Es indexiert also das Wort nicht, wenn es nur Hallo ist, aber es indiziert es, wenn es das Wort "HelloWhatsHappening" ist.

+0

ooo im sorry .. ich vergaß das in der Frage .. Es tut bereits das :( –

+0

Ich habe den IN BOOLEAN MODE hinzugefügt. Aber es funktioniert nicht –

+0

Warte ich denke ima twonk: D ... in meiner Tabelle ist das Hallo gespeichert als solche "Hallo:" aber gibt es einen Grund, warum das nicht funktioniert –