Richtige Syntax für MySQL abfrage mit REGEXP
Frank Stabenau
- datenbank
Hallo Leute,
ich möchte folgendes abfragen.
mysql> select * from tabelle where '30423' regexp plz
In der Tabelle stehen in der Spalte PLZ zB. '3', '30', '04'.
Jetzt möchte ich das '3' oder '30' selected werden, aber nicht '04'.
Also sollte er ja nur den Anfang der Zeichenkette als Suchmuster benutzen.
Wie bekomme ich ein ^ mit eingebaut, so das die Syntax stimmt?
Danke schonmal,
VG Frank
Hi,
mysql> select * from tabelle where '30423' regexp plz
In der Tabelle stehen in der Spalte PLZ zB. '3', '30', '04'.
Jetzt möchte ich das '3' oder '30' selected werden, aber nicht '04'.
Also sollte er ja nur den Anfang der Zeichenkette als Suchmuster benutzen.
Wie bekomme ich ein ^ mit eingebaut, so das die Syntax stimmt?
Wenn ich dich richtig verstanden habe suchst du:
select * from tabelle where PLZ like '3%';
Das % steht hierbei fuer beliebige Zeichen.
mfG,
steckl
Hi Frank!
mysql> select * from tabelle where '30423' regexp plz
In der Tabelle stehen in der Spalte PLZ zB. '3', '30', '04'.
Kann es sein, dass du nur die erste Ziffer der PLZ vergleichen möchtest?
Wie wäre es mit einem where 3% LIKE plz
?
Ansonsten hilft dir vielleicht das Handbuch weiter.
MfG H☼psel
Hallo und Danke schonmal für die Antworten.
Eigentlich suche ich nicht nach einer anderen Lösung.
Ich suche vor allem erst einmal nach der richtigen Syntax für mein Problem.
Ich hätte gern das:
mysql> SELECT 'fofo' REGEXP '^fo';
umgesetzt.
Nur hole ich mir den Teil nach dem REGEXP aus der DB, wobei ich nach Abfrage eines Formulars 'fofo' vorgegeben wird.
Also habe ich dann:
mysql> SELECT '30425' REGEXP PLZ;
Meine falsche Syntax sieht so aus:
mysql> SELECT '30425' REGEXP ^PLZ;
Und ich hätte gern gewusst, wie man das richtig schreibt.
Oder halt eben die Antwort, dass es nicht geht. Dann suche ich nach einer anderen Lösung.
Ich hoffe ich habe mich nicht zu kompliziert ausgedrückt!
VG Frank
Hi,
Meine falsche Syntax sieht so aus:
mysql> SELECT '30425' REGEXP ^PLZ;
versuch mal:
SELECT '30425' REGEXP CONCAT('^',PLZ);
mfG,
steckl
mysql> SELECT '30425' REGEXP ^PLZ;
versuch mal:
SELECT '30425' REGEXP CONCAT('^',PLZ);
Vielen Dank, das ist die Lösung!
VG Frank