Mysql
 sql >> Datenbank >  >> RDS >> Mysql

was ist diese Reihenfolge um 1?

order by 1 bedeutet "Ordnen nach dem ersten Feld, das ich ausgewählt habe" -- d.h. in diesem Fall dasselbe wie order by playerno , weil playerno war das erste Feld in der Liste.

Falls Sie den offiziellen Wortlaut wollen, hier ist das SQL-92 Standard sagt:

10)If ORDER BY is specified, then each <sort specification> in the
        <order by clause> shall identify a column of T.

        Case:

        a) If a <sort specification> contains a <column name>, then T
          shall contain exactly one column with that <column name> and
          the <sort specification> identifies that column.

        b) If a <sort specification> contains an <unsigned integer>,
          then the <unsigned integer> shall be greater than 0 and not
          greater than the degree of T. The <sort specification> iden-
          tifies the column of T with the ordinal position specified by
          the <unsigned integer>.

In diesem Fall b scheint zuzutreffen.

Neuere Versionen des SQL-Standards haben diese Funktion jedoch entfernt, daher sollte neuer Code sie im Allgemeinen vermeiden. SQL-basierte Datenbankserver lehnen es seit einiger Zeit ab, aber die meisten unterstützen es weiterhin aus Gründen der Abwärtskompatibilität. Gleichzeitig zeigt die Tatsache, dass sie es verworfen haben, an, dass sie es nicht länger als eine Funktion betrachten, die sie wirklich unterstützen müssen, sodass es jederzeit ohne weitere Warnung entfernt werden könnte (z. B. wenn sie einen Fehler in diesem Teil finden ihres Codes, könnten sie entscheiden, dass der beste Weg, den Fehler zu beheben, darin besteht, diese Funktion einfach zu deaktivieren).