sql >> Database >  >> RDS >> Mysql

MariaDb ondersteunt geen ANY_VALUE() functie

Voor vandaag heb je het probleem opgelost. Maar morgen, wanneer u dezelfde zoekopdracht uitvoert, krijgt u een andere foutmelding.

In oudere versies van MySQL of MariaDB zou u "elke waarde" krijgen voor price_available wanneer niet GROUPing BY het. Dat was eigenlijk ergens tussen "slechte praktijken" en een "overtreding van de normen". Relatief recent schakelde MariaDB, en later MySQL, over naar "alleen volledige groeperen op". Op dat moment ANY_VALUE() ontstond voor MySQL, maar blijkbaar liet MariaDB de bal vallen.

De oude oplossing, die veilig zou moeten zijn voor zowel oude als nieuwe versies, is het gebruik van MIN(price_available) of een andere aggregatiefunctie. (Als de kolom NULL kan hebben , de verschillende aggregaten kunnen al dan niet NULL handle verwerken zoals u dat wilt.)

Zie ook de ONLY_FULL_GROUP_BY instelling.



  1. Wat is een schema in SQL en hoe maak je het aan?

  2. Waarom zou een IN-voorwaarde langzamer zijn dan =in sql?

  3. Bind IS NULL of NULL bij gebruik van PHP PDO en MySql

  4. Weken aftrekken van een datum in PostgreSQL