MySQL-Funktion auf alle Zeilen anwenden
sarah82
- datenbank
Hallo zusammen,
derzeit bin ich ein wenig am verzweifeln.
Ich stehe vor einer Datenbank mit 8000 Zeilen. Jede Zeile besteht aus einem id (Primärschlüssel) und einem key (40 Zeichen lang).
Wie gerade geschildert, haben alle Werte in der Spalte key 40 Zeichen, sollen aber künftig nur noch noch 39 besitzen. Die 40 Zeichen setzen sich zusammen aus 8 Zeichenblöcken á 4 Zeichen und 8 Bindestrichen zwischen den Blöcken, und leider auch nach dem letzten:
0123-1234-2345-3456-4567-5678-6789-7890-
Ich weiß nicht mehr genau, wo der Fehler aufgetreten ist, aber das ist auch nicht relevant. Entscheidend jedoch ist, dass ich einen Weg finden muss alle zu kürzen auf 39 Zeichen.
Die SQL-Funktion dafür lautet:
SUBSTRING(key,1,39)
Mein Problem an dieser Stelle ist leider, dass ich nicht weiß, wie ich das zeilenweise mit dem minimalsten Aufwand realisieren soll und folgendes funktioniert ja leider nicht.
UPDATE key_table
SET key = SUBSTRING(key,1,39)
Nun weiß ich leider nicht, wie man in MySQL Schleifen oder ähnliches verwendet. Ich arbeite in der Regel nicht mit MySQL.
Hat jemand von euch einen Vorschlag? Ich wäre für alles dankbar.
Liebe Grüße, Sarah
Mahlzeit sarah82,
und folgendes funktioniert ja leider nicht.
UPDATE key_table
SET key = SUBSTRING(key,1,39)
Warum nicht? Dort wird bei einem ähnlichen Problem empfohlen, die Abfrage um ein "ORDER BY key DESC" zu ergänzen ...
MfG,
EKKi
Ich danke dir vielmals! Es hat doch funktioniert, ich hatte nur leider einen Schreibfehler.
Schönen Abend noch :-)
Mahlzeit sarah82,
»» und folgendes funktioniert ja leider nicht.
»»
»» UPDATE key_table
»» SET key = SUBSTRING(key,1,39)Warum nicht? Dort wird bei einem ähnlichen Problem empfohlen, die Abfrage um ein "ORDER BY key DESC" zu ergänzen ...
MfG,
EKKi