Ah, der Vergleich auf Größe zweier Varchars ist der Trick. Folgender Code tut seinen Zweck:
Code:
UPDATE `tabelle` SET `order` = (SELECT count(*) FROM (SELECT DISTINCT `name` FROM `tabelle` ORDER BY `name`) a WHERE `tabelle`.`name` > a.`name`);
Die
"TOP 1000000" habe ich in ihrer Wirkung nicht wirklich verstanden.
MySQL unterstützt die Syntax ohnehin nicht. Vermutlich ist es eine LIMIT Anweisung? Das "+ 1" am Ende macht das
Query kompatibel zu meinem obigen Code, allerdings ist es für die Reihenfolge natürlich völlig unerheblich, ob man bei 0 oder 1 beginnt.
Vielen Dank!
@Iwo Asnet:
ERROR 1093 (HY000): You can't specify target table 'tabelle' for update in FROM clause
Liebe Grüße,
Valentin