only_full_group_by: & quot; предложение ORDER BY отсутствует в предложении GROUP BY & quot;

Выпуск новой версии mysql с only_full_group_by

Мне нужно, чтобы получить значение таблицы с помощью группы по (col_id) и порядок по (дата)
и мой код в MySQL следующим образом:

SELECT COUNT(created_date) AS `Rows` , ANY_VALUE(id)
FROM `table` where `my_id` = 1 AND `status` = '0'
GROUP BY `id`
ORDER BY `created_date` DESC

Я получаю ошибку, как следует

SQLSTATE [42000]: Синтаксическая ошибка или нарушение прав доступа: 1055 Выражение # 1 предложения ORDER BY отсутствует в предложении GROUP BY и содержит неагрегированный столбец ‘database.table.created_date’, который функционально не зависит от столбцов в предложении GROUP BY; это несовместимо с sql_mode = only_full_group_by

Кто-нибудь скажет решение?

Заранее спасибо…

0

Решение

С «только полная группа», order by не может быть произвольным столбцом. order by анализируется после group by, поэтому разрешены только агрегированные ключи и агрегированные столбцы.

Вы можете использовать:

SELECT COUNT(created_date) AS `Rows`, ANY_VALUE(id)
FROM `table`
WHERE `my_id` = 1 AND `status` = '0'
GROUP BY `id`
ORDER BY ANY_VALUE(`created_date`) DESC;

Если бы мне пришлось угадывать, вы на самом деле хотите MAX():

ORDER BY MAX(`created_date`) DESC;
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]