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