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-Key: 262137

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

Printed on: April 26, 2024 at 05:04 o'clock

Member: Biber
Solution Biber Feb 03, 2015, updated at Feb 04, 2015 at 12:55:28 (UTC)
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
Member: Shardas
Shardas Feb 04, 2015 at 12:55:25 (UTC)
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
Member: eagle279
eagle279 Sep 23, 2022 at 08:48:27 (UTC)
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?