Hallo Sven,
Aha, jetzt kommen wir der Sache näher. »»
Wenn ich dich so beobachte, habe ich allerdings nicht den Eindruck, du kämst irgendwas näher. :)
ohne echte Hilfe offensichtlich nicht.
Also betroffene Feldänderungen = 1
Das wusst ich bisher auch nicht, dass mysql prüft ob etwas zu ändern ist, dachte wird immer automatisch überschrieben auch wenn gleich.Das kann man selbst bestimmen. Standardmäßig meldet MySQL nur echte Veränderungen zurück, es kann aber auch alle Datensätze zählen, die insgesamt unter die WHERE-Klausel fallen.
Ja das bedeutet also tatsächlich, MySql ändert keine Werte, was im umkehrschluss bedeutet MySql prüft ob geändert werden muss.
Na gut dann nächster Versuch:
insert into muell (abc)values('xyxy');update muell set abc=last_insert_id();Das Update setzt in ALLEN Datensätzen der Tabelle die Spalte abc auf den ID-Wert des letzten Inserts. Das kann nicht sein, was du willst. Aber was willst du denn eigentlich überhaupt? Es scheint mir wenig sinnvoll, die ID zu duplizieren.
Natürlich, aber das sagte ich direkt im folgenden Satz selber.
Geht, aber natürlich wieder leider auf alle Einträge.
Logisch. Wo soll die ID denn hin?
Eben, sage ich ja selber.
insert into muell (abc)values('xyxy');update muell set abc=last_insert_id() where id=last_insert_id();
Das geht nicht, obwohl keine Fehlermedlung kommt, denke das in dem Fall eben die wherebedingung nichts finden kann, weil vermutlich last_insert_id=0 sein könnte.Welchen Sinn hat diese Konstruktion?
Dazu komme ich noch.
Und bitte geh dabei mal von deinem Müllbeispiel ab und komme auf deine reale Anwendung, bei der sowas sinnvoll sein soll. Denn es ist in meinen Augen absolut NICHT sinnvoll, ein ID-Feld im gleichen Datensatz zu duplizieren.
Jeder hat halt andere Ansprüche.
Wobei ich die Logik nicht verstehe, schliesslich findet er ja auch den richtigen Wert ohne "where".
Das bleibt immer noch unbeatwortet.
Wie würdet ihr diese Abfrage gestalten, mal vom Sinn/Unsinn des Ganzen abgesehen?
Ich würde nicht vom Unsinn absehen und sie deshalb nicht gestalten. :)
Gut, vielleicht findet sich ja Jemand mit mehr Experimentierfreude.
Und um mal den Nutzen darzustellen.
Im Moment (ist auch nur reine Experimentierlust), versuche ich eine Prüfsumme aus mehreren Feldern zu erzeugen die allerdings auch die ID beinhält.
So brauche ich bei einer Abfrage nicht viele Felder abzufragen und die Prüfsumme sozusagen jedes Mal neu erstellen zu lassen, nein ich brauche dann lediglich ein einziges Feld abzufragen.
Wenn das in deinen Augen Unsinn ist, sag doch mal warum.
Jan