6 messages in com.mysql.lists.mysql-deRe: Antwort: REGEXP um nur Zahlen zu ...
FromSent OnAttachments
RICH...@qvc.com13 Nov 2007 03:35 
Hartmut Holzgraefe13 Nov 2007 03:40 
Schaubmair WebSolutions KEG13 Nov 2007 03:46 
Björn Brinkhoff13 Nov 2007 03:49 
Rene Fertig13 Nov 2007 04:47 
Schaubmair WebSolutions KEG13 Nov 2007 08:17 
Subject:Re: Antwort: REGEXP um nur Zahlen zu vergleichen
From:Rene Fertig (me@renux.de)
Date:11/13/2007 04:47:12 AM
List:com.mysql.lists.mysql-de

Hallo alle.

Am Dienstag, 13. November 2007 12:49 schrieb Björn Brinkhoff:

Hallo zusammen,

das funktioniert auch nicht, weil der Suchstring ja "123456789" ist, dieser aber so: "12-3456-89" oder so: "123-456-789" oder so: "1234-567-89" oder irgendwie anders aufgeteilt sein kann, wenn ich die Frage richtig verstehe. Man bräuchte eine Funktion, die alle nicht numerischen Zeichen eliminiert, um dann den übriggebliebenen String vergleichen zu können. Außerdem kommt durch das LIKE eine Unschärfe hinein, dazu führen könnte, daß auch andere Datensätze, z. B. "12344566789", gefunden werden. Ich schätze, daß man da eine SEHR aufwendige Abfrage basteln müßte, um ein exaktes Ergebnis zu bekommen.

Sehe ich auch so. Zumindest wird man nicht um eine Programmiersprache herumkommen, die aus dem Suchstring "123456789" eine Regex zusammenbaut. Was IMHO funktionieren müsste, wäre eine Regex der Art '^1[^0-9]*2[^0-9]*3[^0-9]*4[^0-9]*5[^0-9]*6[^0-9]*7[^0-9]*8[^0-9]*9$'

also

SELECT companyNumber FROM tbl_users WHERE companyNumber RLIKE '^1[^0-9]*2 [^0-9]*3[^0-9]*4[^0-9]*5[^0-9]*6[^0-9]*7[^0-9]*8[^0-9]*9$'

Hoffe geholfen zu haben.

Ciao, René