Hallo,
ich möchte in meiner MySQL Datenbank den Eintrag 'IDENT' im Datensatz mit der größten ID ändern. Bisher hab' ich das hier versucht:
UPDATE erwachsene
SET
erwachsene
.IDENT
= '$ident'
WHEREerwachsene
.ID
= (SELECT MAX(erwachsene
.ID
)) LIMIT 1
> Manchmal wird der Eintrag IDENT aber in einer Zeile geändert, die nicht die größte ID hat. woran kann das liegen?
das ist bei MySQL normal :-)
1\. [siehe Rouven](https://forum.selfhtml.org/?t=184440&m=1222943)
2\. Setze bitte
`SELECT MAX(erwachsene.ID)`{:.language-sql}
ab. Was erhältst Du?
3\. Setze mal
~~~sql
SELECT
ID,
IDENT
FROM
erwachsene
WHERE
ID = (
SELECT
MAX(erwachsene.ID)
)
ab. Was erhältst Du?
Ich halte das Ergebnis zwar nicht für besonders sinnvoll oder gar logisch,
insbesondere wenn man sich das Ergebnis von 2. betrachtet.
Da Du keine ORDER BY-Klausel verwendest ist Dein Ergebnis mit 3. normal.
4. Da Du ORDER BY verwenden kannst, ist es supereinfach, den Datensatz mit
der höchsten ID upzudaten:
UPDATE
erwachsene
SET IDENT = <wert>
ORDER BY
ID
LIMIT 1
Freundliche Grüße
Vinzenz