sql >> Base de Datos >  >> RDS >> Mysql

¿Cuál es este orden por 1?

order by 1 significa "ordenar por el primer campo que seleccioné", es decir, en este caso, lo mismo que order by playerno , porque playerno fue el primer campo de la lista.

En caso de que quiera la redacción oficial, esto es lo que dice el SQL-92 estándar dice:

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

En este caso, b es el que parece aplicarse.

Sin embargo, las versiones más recientes del estándar SQL han eliminado esta capacidad, por lo que el nuevo código generalmente debería evitarla. Los servidores de bases de datos basados ​​en SQL lo han dejado de usar por un tiempo, pero la mayoría continúa admitiéndolo por motivos de compatibilidad con versiones anteriores. Al mismo tiempo, el hecho de que lo hayan descartado indica que ya no lo consideran una característica que realmente necesitan admitir, por lo que podría eliminarse en cualquier momento sin más advertencias (por ejemplo, si encuentran un error en esa parte de su código, podrían decidir que la mejor manera de corregir el error es deshabilitar esa función).