REGEXP-String ermitteln

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).