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

0

Когда я пытаюсь запустить этот запрос в 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();

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

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

Теги:
codeigniter
codeigniter-3

1 ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню