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

Incompatibilità con Mysql 5.7 (l'espressione n. 1 della clausola ORDER BY non è nell'elenco SELECT)

Ho trovato la risposta alla mia domanda. In realtà mysql 5.7 contiene 'ONLY_FULL_GROUP_BY ' in modalità sql.Quindi non possiamo eseguire orderby nell'elemento che non è nell'elenco selezionato. dobbiamo cambiarlo da

'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' 

in

'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

Possiamo farlo eseguendo le seguenti query

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'