shardas
Goto Top

Verständnisfrage zu mysql match against

Liebe Datenbankentwickler,

ich stehe gerade auf dem Schlauch vor einem vermutlich simplen Problem.
In einer Tabelle gibt es eine Spalte 'tags'

Hier die Resultate:

SELECT * FROM Tags WHERE MATCH(tag) AGAINST('*m*' IN BOOLEAN MODE); SELECT * FROM Tags WHERE tag like '%m%';
military military
mindfuck mindfuck
movie & Televisionmovie & Television
musicMusic
Papercraft & Origami
Paranormal
science & math Science & Math
Video Game

Bei match against fehlen also Papercraft & Origami, Paranomal und Video Game.

Ich sehe folgenden Zusammenhang:
Nur Wörter, welche mit 'm' Anfangen werden bei match against ausgegeben.
Mir ist es nicht ersichtlich weshalb... Im Select sollten die Wildcards doch für die korrekte Ausgabe sorgen?
Wie finde ich Tags, welche den gesuchten Buchstaben im Wort enthalten?

Danke für die Aufklärung

Content-ID: 262137

Url: https://administrator.de/contentid/262137

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

Biber
Lösung Biber 03.02.2015, aktualisiert am 04.02.2015 um 13:55:28 Uhr
Goto Top
Moin Shardas,

na ja, ich vermute mal, dass das Ergebnis ein eher zufälliges ist, weil meines Wissens nach gibt es zwar
bei MATCH() ..AGAINST( ... IN BOOLEAN MODE) die Operatoren "+", "-", "~", und dies und das und auch das Sternchen "*"

Allerdings gibt es KEIN führendes Sternchen VOR einem Suchwort.

Von hier zitiert

Das Sternchen dient als Kürzungs- oder Jokeroperator. Anders als andere Operatoren wird es an das betreffende Wort angehängt. Eine Übereinstimmung liegt bei Wörtern vor, die mit dem vor dem Operator * stehenden Wort beginnen.


Grüße
Biber
Shardas
Shardas 04.02.2015 um 13:55:25 Uhr
Goto Top
Jaja das kommt davon wenn man die Dokumentation nicht richtig liest...
Du hast natürlich recht. Das * kann man nur ans Ende des gesuchten Wortes setzen

Ich danke dir
eagle279
eagle279 23.09.2022 um 10:48:27 Uhr
Goto Top
Hallo, ich habe das gleiche Problem wie Shardas.

Wie müsste man in obigem Beispiel den Code denn ändern, damit auch die Wörter Origami und Paranormal gefunden werden?

Anders gefragt: Wodurch kann man das "Sternchen am Anfang" ersetzen?