SQL UPDATE mit LIMIT

Schumiel

Lieutenant
Registriert
Jan. 2010
Beiträge
825
Hallo,

ich möchte mit MySQL Datensätze updaten. Jedoch das erste Ergebnis nicht. Dies wollte ich wie folgt durchführen:

SQL:
UPDATE tabelle SET feld = 1 WHERE id = 1 ORDER BY zeit DESC LIMIT 1,10

Auch mit OFFSET funktioniert es nicht. Ich bekomme immer bei der 10 eine Fehlermeldung.

Hat UPDATE da eine Eigenart? Mit SELECT funktioniert das ohne Probleme.
 
Zuletzt bearbeitet: (SQL editiert)
UPDATE + JOIN auf die zu ändernden Datensätze.
 
Hi,

darf man nach der Datenstruktur fragen? Normalerweise verwendet man für so eine Einschränkung eine ID/UUID, um ganz einfach alle Einträge, bei denen "ID <> XYZ" oder dergleichen ist, nicht zu aktualisieren oder die auszuwählen, die aktualisiert werden sollen. Das wäre der einfachste Weg. Sprich

UPDATE tabelle SET feld = 1 WHERE uuid <> 1;

ORDER und LIMIT macht bei einem UPDATE in meinen Augen keinen Sinn.

Außerdem sollte dein Statement oben nur einen Datensatz aktualisieren - die Prüfung auf "id = 1" sollte nur ein Ergebnis liefern, sonst ist "id" falsch gewählt als Bezeichner, wenn es davon mehrere gibt...

@SoDaTierchen

was fehlt wo? Oder wurde der Startpost editiert?

VG,
Mad
 
@Madman1209: Startpost wurde editiert, der SET-Teil fehlte komplett.

@Schumiel: Madman1209 hat im Kern recht, filtere nicht mit LIMIT sondern über den Primärschlüssel.
 
Hi,

@TE wenn du etwas editierst merke das doch einmach mit "EDIT" oder so an - sonst führt das, wie du siehst, gerne zu Verwirrung :)

VG,
Mad
 
Es steht unten rechts in grau

"Zuletzt bearbeitet: Vor 29 Minuten (SQL editiert) "

Sollte eigentlich ausreichen oder?

Ich mache nun zuvor eine SELECT-Abfrage und UPDATE dann das Ergebnis.
Mein SQL war nur ein Beispiel. Ohne direkten Bezug auf inhaltliche Korrektheit. Mir ging es nur um LIMIT.

Ich danke euch. Thema ist geklärt, dank eurer Hilfe. 👍
 
Zurück
Oben