Hallo ;)
"SELECT * FROM tabelle WHERE spalte REGEXP '1x2[^0-9]' OR '[^0-9]1x2'"
Kann mir kaum vorstellen, dass das schon die finale korrekte Lösung ist.
Wenn du nach "1x2" suchst, und ausschließen willst, dass vor der 1 noch Ziffern kommen, und auch nach der 2, dann ist das EIN regulärer Ausdruck für mich.
Und auch deine WHERE-Bedingung schaut extrem merkwürdig aus. Es gibt nämlich keine REGEXP-Verknüpfung mit OR. Das, was du da produziert hast, ist folgendes (geklammert zur Verdeutlichung):
(spalte REGEXP '1x2[^0-9]') OR ('[^0-9]1x2')Also der Regex-Vergleich oder ein konstanter String. Wundert mich, dass das ohne Fehlermeldung durchgeht.
- Sven Rautenberg
DANKE für Deine Antwort ;) Und Du hattest Recht! Im phpmyadmin hat meine Lösung oben zwar ohne meckern funktioniert, aber in der php-Datei sah das Ergebnis merkwürdig aus!
Ich hab's nochmal anders geschrieben - und zwar folgendermaßen:
$abfrage = "SELECT * FROM tabelle WHERE spalte REGEXP '(1x2[^0-9])|([^0-9]1x2)|(^1x2$)'";
Scheinbar müssen die [ escaped werden, damit's klappt - das war mir auch noch nicht so klar...
Ich bin natürlich für jede weitere Kritik offen - man lernt immer dazu! ;)
Julchen