sarah82: MySQL-Funktion auf alle Zeilen anwenden

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

  1. 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

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. 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