6 messages in com.mysql.lists.mysql-deRe: Antwort: REGEXP um nur Zahlen zu ...| From | Sent On | Attachments |
|---|---|---|
| RICH...@qvc.com | 13 Nov 2007 03:35 | |
| Hartmut Holzgraefe | 13 Nov 2007 03:40 | |
| Schaubmair WebSolutions KEG | 13 Nov 2007 03:46 | |
| Björn Brinkhoff | 13 Nov 2007 03:49 | |
| Rene Fertig | 13 Nov 2007 04:47 | |
| Schaubmair WebSolutions KEG | 13 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é
-- Tipps & Tricks für Linux, MySQL & Webdesign -> http://home.telebel.de/~referti/blog/




