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

MariaDb no es compatible con la función ANY_VALUE()

Por hoy, has resuelto el problema. Pero mañana, cuando ejecute la misma consulta, obtendrá un error diferente.

En versiones anteriores de MySQL o MariaDB, obtendría "cualquier valor" para price_available cuando no GROUPing BY eso. Eso estaba efectivamente en algún lugar entre una "mala práctica" y una "violación de las normas". Hace relativamente poco tiempo, MariaDB, luego MySQL, cambió a "solo grupo completo por". En ese momento, ANY_VALUE() nació para MySQL, pero aparentemente MariaDB dejó caer la pelota.

La solución antigua, que debería ser segura tanto para las versiones antiguas como para las nuevas, es usar MIN(price_available) o alguna otra función agregada. (Si la columna puede tener NULL , los diversos agregados pueden o no manejar NULL de la forma que prefieras).

Ver también el ONLY_FULL_GROUP_BY ajuste.