Einzelnen Beitrag anzeigen

Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#1

[SQL] Order-Feld automatisch ausfüllen lassen

  Alt 4. Mai 2012, 12:53
Datenbank: MySQL / SQLite • Version: N/A • Zugriff über: N/A
Hallo DPler!

Ich hab' mal wieder eine Frage, ob etwas sinnvoll nur mit SQL umsetzbar ist.

Ich habe eine Tabelle mit den Feldern Name und Order. Bei jeder Abfrage wird die Reihenfolge der Einträge über das Feld Order bestimmt (ORDER BY `order`). Manchmal kommt es aber vor, dass die Einträge dieser Tabelle völlig durcheinander sind und die Reihenfolge automatisch neu bestimmt werden kann. In diesem Fall ist die Abfrage über ORDER BY `name` richtig. Da die Abfragen aber nicht allesamt geändert werden können, muss das der Inhalt des Order-Feld neu gesetzt werden. Folgender Code tut dies:

Code:
result = connection.execute("SELECT id FROM tabelle ORDER BY name")
order = 1
for row in result:
    connection.execute("UPDATE tabelle SET `order` = %i WHERE id = %i" % (order, row['id']))
    order += 1
Gibt es einen sinnvollen Code, der dies auf dem Server ausführt? Das ganze muss unter MySQL & SQLite laufen.

Liebe Grüße,
Valentin
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat