Это ограничение имеет смысл, так как при использовании GROUP BY
в MySQL оно возвращает одну строку для каждого значения в столбцах, используемых в GROUP BY
. Значит, значения других столбцов в выбранных строках нигде нет смысла использовать. Поэтому всегда рекомендуется использовать лучшие практики, и я бы рекомендовал не отключать MySQL Strict Mode.
Часто разработчикам могут потребоваться строки запроса, сгруппированные по значению столбца. Здесь им не нужна только одна строка на уникальные значения столбцов. Но им нужно несколько строк, сгруппированных по уникальным значениям определенного столбца. По какой-то причине они используют groupBy
метод Query Builder Laravel, который генерирует MySQLGROUP BY
запрос и разработчики сталкиваются с указанной выше ошибкой.
Решение их проблемы - использовать groupBy
вместо этого метод Collection. Например,
$loadingData = DB::table('loading')
->whereIn('id', $loadIds)
->get()
->groupBy('vehicle_no');
Это даст им желаемый результат.