Publicidad

Mysql Disable ONLY_FULL_GROUP_BY


Por Alex el 09/08/2020, Comentar el artículo

Comparte este artículo:      




A veces es necesario hacer GROUP BY por un solo campo pero para poder hacerlo hay que habilitarlo en MySql o mejor dicho deshabilitarlo ...


MySql obliga a que todos los campos que están en el SELECT aparezcan también en el GROUP BY, para esto esta la clausula ONLY_FULL_GROUP_BY que nos obliga ha realizar las consultas de esta forma. Pero podemos eliminar esta clausula de forma muy sencilla.

Lo podemos hacer de dos formas, temporal y permanente

Temporal

Vamos a la consola de MySql y escribimos el siguiente comando

Select @@sql_mode


Select @@sql_mode

Copiamos el texto que sale y eliminamos la opcion ONLY_FULL_GROUP_BY y ejecutamos la siguiente sentencia

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,
NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

Ahora podemos ejecutar las consultas pero es temporal y cuando reiniciamos el servidor volveremos a estar como antes.

Permanente

El proceso inicial es el mismo, ejecutamos select @@sql_mode y el resultado lo tenemos que poner en el fichero de configuración del mysql, /etc/mysql/mysql.conf.d/mysqld.cnf y en la sección [mysqld]

[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,
NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

Y reiniciamos el servidor MySql

/etc/init.d/mysql restart

Y ahora ya es permanente.

Y esto es todo, y feliz programming
Saludos
Alex.



Si te ha gustado el artículo compartelo en:      




Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.