Hallo!
1///////////////////////////////////////////////////////////
//'Schweinchensup' 'Sparschwein' 'Hängebauchschweinshaxen'//
2///////////////////////////////////////////////////////////
//'Schwein' 'Schweinestall' 'Schweinefutter' 'Pouletbrüst'//
3///////////////////////////////////////////////////////////
//'Schweinestall' 'Schweinefutter' 'Schweinchen' 'Schwein'//
4///////////////////////////////////////////////////////////
//'Schweinestall' 'Schweinefutter' 'Schwein' 'Schweinerei'//
////////////////////////////////////////////////////////////Ich möchte eine mySQL Abfrage starten, welche mir nur dijenigen Zeilen ausgibt,
in der das Wort 'Schwein' alleinstehend vorkommt, also:
Zeile 2, 3 und 4 ohne Zelle 1Wie lautet die dazugehörige SQL Abfrage?
Ich habe die reglulären Ausdrücke studiert, bin bis jetzt auf keinen grünen Zweig gekommen.
Naja, ich weiß jetzt nicht wie kompatibel die regulären Ausdrücke in MySQL sind, aber \b sthe tnormalerweie für Wortgerenzen, also könnte der Ausdruck so heißen: /\bschwein\b/, was am Ende vermutlich noch performanter ist als 3 OR-verknüpfte WHERE Bedingungen mit Like.
Ein andere Weg wäre ein Volltext-Index, der genau das macht, der trifft nur ganze Wörter, sowas wie SELECT schweinespalte FROM schweinetabelle WHERE MATCH (schweinespalte) AGAINST ('schwein'). Allerdings mußt Du hierfür einen Fulltextindex über die Spalte "schweinespalte" definieren.
http://de.mysql.com/documentation/mysql/bychapter/manual.de_Reference.html#Fulltext_Search
Kennt jemand den Unterschied zwischen REGEXP und RLIKE?
Der "Unterschied" steht hier: http://de.mysql.com/documentation/mysql/bychapter/manual.de_Reference.html#IDX1185
Grüße
Andreas