Ошибка даты GROUP BY после обновления до MySQL 5.7 - PullRequest
0 голосов
/ 01 июля 2019

У меня есть простой скрипт, который подсчитывает количество потенциальных клиентов и отображает счет по месяцам и годам.Он работал нормально, пока я не обновился до MySQL 5.7.Теперь я получаю эту ошибку:

Произошла ошибка при выполнении запроса [Выражение № 3 списка SELECT отсутствует в предложении GROUP BY и содержит неагрегированный столбец 'form.form_25.submission_date', который не является функциональнозависит от столбцов в предложении GROUP BY;это несовместимо с sql_mode = only_full_group_by]

Мой запрос:

SELECT YEAR(`submission_date`) AS yr, 
MONTH(`submission_date`) AS mth,
DATE_FORMAT(`submission_date`,'%M %Y') AS display_date, 
COUNT(*) AS leadcount
FROM form_25 
WHERE `submission_date` >= CURRENT_DATE - INTERVAL 1 YEAR
GROUP BY yr,mth
ORDER BY yr DESC, mth DESC

Я понимаю, что это так, потому что only_full_group_by включен, но я не хочу его отключать.

Я исследовал эту проблему, но кажется, что все предлагаемые решения касаются группировки по уникальному столбцу.Это не решение в данном случае, потому что группировка по первичному столбцу не отображает количество отведений должным образом.

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 01 июля 2019

Хорошо, я нашел решение, которое достаточно хорошо для моих целей. Я обнаружил, что ошибка происходит только тогда, когда эта строка включена:

DATE_FORMAT(`submission_date`,'%M %Y') AS display_date,

Поэтому я удалил эту строку и заново создал переменную display_date в PHP, используя псевдонимы yr и mth.

...