Erstes Zeichen in SQL Datenbank prüfen und ersetzen
Hallo zusammen!
Ich habe hier eine MySQL-Datenbank mit den Daten unserer Kunden.
Nun möchte ich gern die Telefonnumern unserer Kunden anpassen:
Bei ausländischen Kunden ist die nummer im kanonischen Format hinterlegt.
Bei deutschen Kunden nicht. Da habe ich nur die Vorwahl mit führenden Null. Das soll nun auch kanonisch.
Ich bräuchte also ein SQL-Script welches in einer bestimmten Spalte einer Tabelle die Daten untersucht, ob sie mit einer 0 beginnen. Diese müsste dann durch +49 ersetzt werden.
Kann mir jemand auf die Sprünge helfen?
Ich komme mit Replace ja nicht weiter, da mir dann ja auch Nullen in der Nummer ersetzt würden.
Ich weiß nicht wie ich nur das erste Zeichen betrachte/ersetze
Vielen Dank schon mal für hoffentlich gute Tipps
Gruß,
Napperman
Ich habe hier eine MySQL-Datenbank mit den Daten unserer Kunden.
Nun möchte ich gern die Telefonnumern unserer Kunden anpassen:
Bei ausländischen Kunden ist die nummer im kanonischen Format hinterlegt.
Bei deutschen Kunden nicht. Da habe ich nur die Vorwahl mit führenden Null. Das soll nun auch kanonisch.
Ich bräuchte also ein SQL-Script welches in einer bestimmten Spalte einer Tabelle die Daten untersucht, ob sie mit einer 0 beginnen. Diese müsste dann durch +49 ersetzt werden.
Kann mir jemand auf die Sprünge helfen?
Ich komme mit Replace ja nicht weiter, da mir dann ja auch Nullen in der Nummer ersetzt würden.
Ich weiß nicht wie ich nur das erste Zeichen betrachte/ersetze
Vielen Dank schon mal für hoffentlich gute Tipps
Gruß,
Napperman
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 157972
Url: https://administrator.de/contentid/157972
Ausgedruckt am: 25.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
Moin napperman,
Das ist doch genau das, was dog implizit mit seinem Kommentar "Ungetestet" andeuten wollte:
Verifizieren oder falsifizieren kannst am Schnellsten du diesen Ansatz, denn du hast die passenden Daten.
Wenn du nichts "beschädigen" willst an deinen Daten, dann mach doch vorher einen ungefährlichen SELECT, der den CONCAT/SUBSTRING/WHERE-Firlefanz enthält:
... dann siehst doch das Was-Wäre-Wenn.
Oder eine Syntaxfehlermeldung - ich habe es auch nicht getestet.
Das "FROM 2" in der SUBSTRING-Funktion bedeutet "vom 2. Zeichen an" und CONCAT() ist neudeutsch für ZUSAMMENBRAT().
Was fehlt dir noch zum Testen?
Grüße
Biber
Das ist doch genau das, was dog implizit mit seinem Kommentar "Ungetestet" andeuten wollte:
Verifizieren oder falsifizieren kannst am Schnellsten du diesen Ansatz, denn du hast die passenden Daten.
Wenn du nichts "beschädigen" willst an deinen Daten, dann mach doch vorher einen ungefährlichen SELECT, der den CONCAT/SUBSTRING/WHERE-Firlefanz enthält:
SELECT telnum as telnumJezz,
CONCAT('+49', SUBSTRING(telnum FROM 2)) as TelNumSpaeter
FROM tbl1
WHERE SUBSTRING(telnum, 1, 1) = '0'
... dann siehst doch das Was-Wäre-Wenn.
Oder eine Syntaxfehlermeldung - ich habe es auch nicht getestet.
Das "FROM 2" in der SUBSTRING-Funktion bedeutet "vom 2. Zeichen an" und CONCAT() ist neudeutsch für ZUSAMMENBRAT().
Was fehlt dir noch zum Testen?
Grüße
Biber
Moin moin
Zum Nachlesen von CONCAT und SUBSTRING schau mal hier: http://dev.mysql.com/doc/refman/5.1/de/string-functions.html
Außerdem würde dann die Null ja nicht entfernt, richtig?
Doch, s.o
Gruß L.
/Edit
Und wiedermal zeigt sich: Das schnellste Säugetier ist der Biber!
/Edit
Zum Nachlesen von CONCAT und SUBSTRING schau mal hier: http://dev.mysql.com/doc/refman/5.1/de/string-functions.html
telnum bezieht sich auf die Spalte (also Spaltenname)?
Jatbll ist der Name der Tabelle?
Jawas hat es mit telnum FROM 2 auf sich. Was ist 2?
Korrekt heist es:SUBSTRING(telnum FROM 2) -- liefert den Teilstring des Feldes "telnum" ab dem 2. Zeichen
Doch, s.o
Gruß L.
/Edit
Und wiedermal zeigt sich: Das schnellste Säugetier ist der Biber!
/Edit