Mysql
 sql >> база данни >  >> RDS >> Mysql

MariaDb не поддържа функция ANY_VALUE().

За днес решихте проблема. Но утре, когато изпълните същата заявка, ще получите различна грешка.

В по-старите версии на MySQL или MariaDB ще получите "всяка стойност" за price_available когато не GROUPing BY то. Това всъщност беше нещо между "лоша практика" и "нарушение на стандартите". Сравнително наскоро MariaDB, а след това и MySQL, премина на „само пълна група от“. По това време ANY_VALUE() се появи за MySQL, но очевидно MariaDB изпусна топката.

Старото решение, което трябва да е безопасно както за стари, така и за нови версии, е да използвате MIN(price_available) или някаква друга агрегатна функция. (Ако колоната може да има NULL , различните агрегати могат или не могат да обработват NULL начина, по който предпочитате.)

Вижте също ONLY_FULL_GROUP_BY настройка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Попълване на падащи менюта с MySQL записи

  2. Вземете резултати от заявка за броене чрез getSingleScalarResult() и groupBy() - изключение

  3. Оптимизация на база данни на MYSQL с помощта на индексиране

  4. Mysql извлича първата буква на всяка дума в определена колона

  5. Как да създам кръстосана заявка за база данни в PHP?