REGEXP-String ermitteln
am 13.12.2005 09:25:39 von Mathias Lipowski
Hallo NG!
Ich führe führe folgende mysql-Anfrage durch:
SELECT * FROM `db` WHERE `name` REGEXP( '<(.*)>' )
und möchte im Ergebnis nun gleich den String aus `name` haben, für den
die aktuelle
Zeile gefunden wurde. Also ähnlich wie das die PHP-Funktion
"preg_match()" macht.
Wenn ich das REGEXP nach SELECT schreibe, liefert mir mysql nur "1" oder
"0" für
"trifft zu" oder "trifft nicht zu" und nicht den jeweiligen String!
SELECT `name` REGEXP( '<(.*)> ) FROM `db` WHERE `name` REGEXP( '<(.*)>' )
Wie kann ich nun den übereinstimmenden String aus dem REGEXP ermitteln?
(Im Beispiel sollte die Abfrage etwas wie "" liefern.)
Vielen Dank
Mathias
Re: REGEXP-String ermitteln
am 13.12.2005 09:37:02 von Christian Kirsch
Mathias Lipowski schrieb:
> Hallo NG!
>
> Ich führe führe folgende mysql-Anfrage durch:
>
> SELECT * FROM `db` WHERE `name` REGEXP( '<(.*)>' )
>
> und möchte im Ergebnis nun gleich den String aus `name` haben, für den
> die aktuelle
> Zeile gefunden wurde. Also ähnlich wie das die PHP-Funktion
> "preg_match()" macht.
> Wenn ich das REGEXP nach SELECT schreibe, liefert mir mysql nur "1" oder
> "0" für
> "trifft zu" oder "trifft nicht zu" und nicht den jeweiligen String!
>
> SELECT `name` REGEXP( '<(.*)> ) FROM `db` WHERE `name` REGEXP( '<(.*)>' )
>
> Wie kann ich nun den übereinstimmenden String aus dem REGEXP ermitteln?
> (Im Beispiel sollte die Abfrage etwas wie "" liefern.)
>
Wie wäre es, wenn Du einfach den name ausgibst statt das Ergebnis von
REGEXP (denn das ist immer 0 oder 1/true oder false, weshalb Du es ja
im WHERE verwendest).