Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Erstes Zeichen in SQL Datenbank prüfen und ersetzen

Frage Entwicklung Datenbanken

Mitglied: napperman

napperman (Level 2) - Jetzt verbinden

04.01.2011, aktualisiert 11:58 Uhr, 9617 Aufrufe, 6 Kommentare

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
Mitglied: dog
04.01.2011 um 12:57 Uhr
01.
UPDATE tbl1 SET telnum = CONCAT("+49",SUBSTRING(telnum FROM 2)) WHERE SUBSTRING(telnum,1,1) = "0"
ungetestet
Bitte warten ..
Mitglied: napperman
04.01.2011 um 13:46 Uhr
Hi Dog,

Kannst Du mir diese interessante Zeile ein wenig erklären? Meine SQL Kenntnisse sind nicht die besten.
telnum bezieht sich auf die Spalte (also Spaltenname)?
tbll ist der Name der Tabelle?
was hat es mit telnum FROM 2 auf sich. Was ist 2?

Danke!!!!
Bitte warten ..
Mitglied: napperman
04.01.2011 um 13:48 Uhr
Außerdem würde dann die Null ja nicht entfernt, richtig?
Bitte warten ..
Mitglied: Biber
04.01.2011 um 16:50 Uhr
Moin napperman,

Zitat von napperman:
Außerdem würde dann die Null ja nicht entfernt, richtig?

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:
01.
SELECT telnum as telnumJezz,  
02.
        CONCAT('+49', SUBSTRING(telnum FROM 2)) as TelNumSpaeter 
03.
 FROM tbl1 
04.
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
Bitte warten ..
Mitglied: Logan000
04.01.2011 um 16:52 Uhr
Moin moin

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)?
Ja
tbll ist der Name der Tabelle?
Ja
was hat es mit telnum FROM 2 auf sich. Was ist 2?
Korrekt heist es:
01.
SUBSTRING(telnum FROM 2)  -- liefert den Teilstring des Feldes "telnum" ab dem 2. Zeichen
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
Bitte warten ..
Mitglied: napperman
04.01.2011 um 17:15 Uhr
Danke für die Hilfe, so komme ich dem Problem nun bei
Das FROM 2 hatte ich nicht verstanden, so fällt natürlich das erste Zeichen weg.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Festplatten, SSD, Raid
Vergleich zweier SSD-Typen im Raid-10 für den Anwendungsfall SQL-Datenbank (8)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...

Windows Server
Eine bestimmte SQL-Datenbank wird nicht jeden Tag gesichert? (12)

Frage von AlbertMinrich zum Thema Windows Server ...

Windows Server
gelöst SQL Datenbank Umzug (4)

Frage von hornissenmann zum Thema Windows Server ...

Windows Server
Microsoft SQL-Datenbank Syncronisieren

Frage von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...