Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MariaDb unterstützt die Funktion ANY_VALUE() nicht

Für heute haben Sie das Problem gelöst. Aber morgen, wenn Sie dieselbe Abfrage ausführen, erhalten Sie einen anderen Fehler.

In älteren Versionen von MySQL oder MariaDB würden Sie "jeden Wert" für price_available erhalten wenn nicht GROUPing BY es. Das war effektiv irgendwo zwischen „schlechter Praxis“ und einem „Standardverstoß“. Vor relativ kurzer Zeit wurde MariaDB, später dann MySQL, auf „only full group by“ umgestellt. Zu diesem Zeitpunkt ANY_VALUE() für MySQL entstanden, aber anscheinend hat MariaDB den Ball fallen lassen.

Die alte Problemumgehung, die sowohl für alte als auch für neue Versionen sicher sein sollte, ist die Verwendung von MIN(price_available) oder eine andere Aggregatfunktion. (Falls die Spalte NULL haben könnte , die verschiedenen Aggregate können NULL verarbeiten oder auch nicht wie Sie es bevorzugen.)

Siehe auch ONLY_FULL_GROUP_BY Einstellung.