Lukas.: mysql, Problem mit concat

Hi,

SET @n = 120;
UPDATE tabelle SET Nummer = CONCAT(Nummer,'int-', @n := @n + 1) where `Nummer` = "";

ergibt:

# MySQL lieferte ein leeres Resultat zurück (d.h. null Datensätze).

Warum?

L.

  1. Tach!

    SET @n = 120;
    UPDATE tabelle SET Nummer = CONCAT(Nummer,'int-', @n := @n + 1) where `Nummer` = "";
    
    ergibt:
    
    # MySQL lieferte ein leeres Resultat zurück (d.h. null Datensätze).
    

    Unterscheide bitte zwischen Resultat (ob mit Datensätzen oder leer) und der Anzahl der betroffenen Datensätze. Resultate, auch Ergebnismenge genannt, gibt es bei Selects. Die anderen drei der CRUD-Operationen liefern kein Resultat, nur die Anzahl der "affected rows".

    dedlfix.

    1. Unterscheide bitte zwischen Resultat (ob mit Datensätzen oder leer) und der Anzahl der betroffenen Datensätze. Resultate, auch Ergebnismenge genannt, gibt es bei Selects. Die anderen drei der CRUD-Operationen liefern kein Resultat, nur die Anzahl der "affected rows".

      Hi dedlfix.

      Aber die leeren Nummern werden nicht wie gewünscht upgedatet.

      L.

      1. Tach!

        Aber die leeren Nummern werden nicht wie gewünscht upgedatet.

        Ich erstelle mir in nicht ganz einfachen Fällen immer ein SELECT, das alle Datensätze anzeigen muss, die geändert werden sollen. An dem Select kann ich solange feilen, bis es die gewünschte Datenmenge ergibt.

        Wenn das bei dir nicht dir gewünschten Datensätze liefert, ist wohl was mit der Bedingung nicht richtig. Beispielsweise sind Leerzeichenfolgen nicht gleich Leerstrings, und Zeichenfolgen mit Leerzeichen am Ende sind auch nicht gleich zu welchen, die das nicht haben.

        Ich kann dir da nur raten, die Daten genauer anzuschauen. Vielleicht deren Länge überprüfen (mit CHAR_LENGTH()) oder den Wert in Begrenzungszeichen einzufassen, um so zu sehen, ob da nicht sichtbare Zeichen enthalten sind, oder die Hex-Darstellung ansehen, um die Bytes zu ergründen.

        dedlfix.