CodeIgniter 3 — неагрегированная группа столбцов по

Когда я пытаюсь выполнить этот запрос в CodeIgniter 3, он выдает мне эту ошибку:

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'forum.phrases.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

SELECT `id`, `keyword`, `value`, `language` FROM `phrases` GROUP BY `language`

PHP:

$query = $this->db->select("id, keyword, value, language")
->group_by("language")
->get("phrases")
->result();

Я немного погуглил, но не совсем понимаю ответы, в основном потому, что запросы не связаны с CI и очень сложны … Как это можно исправить в codeigniter?

Я не хочу менять какие-либо настройки MySQL.

0

Решение

Это не специфическая проблема CodeIgniter — она ​​является частью стандарта SQL и встроена в MySQL. Он существует для проверки ваших данных и поощрения хорошего дизайна базы данных и запросов. У вас есть два варианта исправить это:

  1. Вы можете писать запросы «правильным» способом. Это было проблемой со спецификацией SQL92, но позже она была изменена в стандарте SQL99 для разрешения неагрегатов: https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html

  2. Другой способ, и более распространенный ответ, это изменить ваш my.cnf файл и отключить принудительный режим SQL only_full_group_by, Отключить ONLY_FULL_GROUP_BY

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector