Mysql
 sql >> Database >  >> RDS >> Mysql

qual è questo ordine per 1?

order by 1 significa "ordina in base al primo campo che ho selezionato" -- ovvero, in questo caso, lo stesso di order by playerno , perché playerno era il primo campo nell'elenco.

Nel caso in cui desideri la formulazione ufficiale, ecco cosa è SQL-92 standard 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>.

In questo caso, b è quello che sembra essere applicabile.

Tuttavia, le versioni più recenti dello standard SQL hanno rimosso questa funzionalità, quindi il nuovo codice dovrebbe generalmente evitarlo. I server di database basati su SQL lo deprecano da un po' di tempo ormai, ma la maggior parte continua a supportarlo per motivi di compatibilità con le versioni precedenti. Allo stesso tempo, il fatto che l'abbiano deprecato indica che non la considerano più una funzionalità che devono davvero supportare, quindi potrebbe essere rimossa in qualsiasi momento senza ulteriori avvisi (ad esempio, se trovano un bug in quella parte del loro codice, potrebbero decidere che il modo migliore per correggere il bug è semplicemente disabilitare quella funzione).