Regina Schaukrug: Die Lösung (sortierte Spaltennamen) und warum das Quatsch ist

Beitrag lesen

Man könnte mal testen, ob Erstellungsreihenfolge = Reihenfolge bei Select * gilt.

Das funktioniert in der Praxis tatsächlich (hab ich mal getestet). Man kann sogar beim Ändern einer Tabelle eine Spalte an einer bestimmten Stelle einfügen. Das Handbuch zu mySQL sagt dazu:

ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]

Allerdings ist dieses Verhalten nicht wirklich garantiert und gilt daher (und weil der DB-Admin nichts von der Wichtigkeit einer Reihenfolge der Spalten weiß) trotz der Verifizierbarkeit in Tests als "zufällig".

Und SELECT * verbietet sich jenseits der Schnellabfrage in der MySQL-Shell aus Gründen, die sich schon herumgeprochen haben sollten. Die Spalten sind bei "normalen" Programmen durch den "Plan vom Großen und Ganzen" bestimmt und bekannt - also kennt man die auch ohne Abfrage und kann sie (wenn man will wie man will) sortieren.

Es sei denn, wie gesagt, man will etwas wie den phpMyAdmin neu schreiben. Aber das ist vorliegend wohl ein fern liegendes Ziel.