Mysql
 sql >> Base de données >  >> RDS >> Mysql

quel est cet ordre par 1 ?

order by 1 signifie "commander par le premier champ que j'ai sélectionné" -- c'est-à-dire, dans ce cas, la même chose que order by playerno , car playerno était le premier champ de la liste.

Au cas où vous voudriez le libellé officiel, voici ce que le SQL-92 norme dit :

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>.

Dans ce cas, b est celui qui semble s'appliquer.

Les versions plus récentes de la norme SQL ont cependant supprimé cette fonctionnalité, de sorte que le nouveau code devrait généralement l'éviter. Les serveurs de base de données basés sur SQL le déconseillent depuis un certain temps maintenant, mais la plupart continuent de le prendre en charge pour des raisons de compatibilité descendante. Dans le même temps, le fait qu'ils l'aient déprécié indique qu'ils ne le considèrent plus comme une fonctionnalité qu'ils doivent vraiment prendre en charge, il peut donc être supprimé à tout moment sans autre avertissement (par exemple, s'ils trouvent un bogue dans cette partie de leur code, ils pourraient décider que la meilleure façon de corriger le bogue est simplement de désactiver cette fonctionnalité).