Ich versuche, eine Reihe von Zeilen in einer Tabelle auszuwählen, die Werte in einer Spalte umzukehren und sie wieder in die Tabelle einzufügen. Hier ist ein Beispiel dafür, was ich tue, sagen, ich habe die folgenden Daten:Einfügen von inkrementellen Werten in einem Insert ... Select-Anweisung mysql
+-------+--------+-------+
| ORDER | X | Y |
+-------+--------+-------+
| 0 | 12 | 5 |
| 1 | 16 | 3 |
| 2 | 19 | 2 |
+-------+--------+-------+
Ich möchte um es auszuwählen und sie in derselben Tabelle mit der ORDER wie so umgekehrt wieder einsetzen:
+--------+--------+-------+
| PORDER | X | Y |
+--------+--------+-------+
| 2 | 12 | 5 |
| 1 | 16 | 3 |
| 0 | 19 | 2 |
+--------+--------+-------+
ich bin in der Lage, die Reihen zu kopieren und wieder einsetzen, kein Problem, einen Einsatz mit ... wählen wie folgt aus:
INSERT INTO myTable (porder, x, y) SELECT porder, x, y FROM myTable
aber ich habe keinen Erfolg Umkehrung der Reihenfolge hatte. Ich habe versucht,
INSERT INTO myTable (porder, x, y) SELECT (SELECT porder FROM myTable ORDER BY porder DESC), x, y FROM myTable but that throws an error
Es wäre schön, die PORDER Spalte einfach zu ignorieren und neue Werte von 0 bis die höchste Zahl in der Folge (2 in meinem obigen Beispiel) einsetzen, aber ich weiß nicht, wie sequenzielle hinzufügen Zahlen in einer mehrzeiligen INSERT-Anweisung in mysql.
Ich weiß, wie dies mit PHP zu tun, aber ich dachte, es muss eine elegantere Lösung in nur
SQL seine
Was ist die Fehlermeldung? Haben Sie über die Verwendung einer temporären Tabelle nachgedacht? 'CREATE TABLE TMP ...'. 'EINFÜGEN IN TMP SELECT ... myTable'. 'DROP TABLE myTable'. 'RENAME TABLE TMP TO myTable'. – Basti