Чтобы навсегда удалить режим «only_full_group_by» в MySQL, вы можете использовать один из следующих методов:
Метод 1: изменение файла конфигурации MySQL
- Найдите файл конфигурации MySQL, который обычно называется «my.cnf» или «my.ini» в зависимости от вашей операционной системы.
- Откройте файл конфигурации в текстовом редакторе.
- Найдите в файле раздел [mysqld].
- Добавьте следующую строку в раздел [mysqld]:
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"Эта строка устанавливает для режима SQL значение, не включающее «only_full_group_by».
- Сохраните файл конфигурации и перезапустите сервер MySQL, чтобы изменения вступили в силу.
Метод 2. Установите режим SQL во время выполнения
- Подключитесь к серверу MySQL с помощью клиента MySQL, например инструмента командной строки MySQL или phpMyAdmin.
- Выполните следующий SQL-запрос, чтобы установить режим SQL для текущего сеанса:
SET GLOBAL sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";Этот запрос устанавливает режим SQL на значение, не включающее «only_full_group_by».
- При желании вы можете выполнить следующий запрос, чтобы проверить изменения:
SELECT @@GLOBAL.sql_mode;Он должен вернуть измененный режим SQL без «only_full_group_by».
Метод 3: изменить режим SQL в файле конфигурации и перезапустить MySQL
- Найдите файл конфигурации MySQL, как указано в методе 1.
- Откройте файл конфигурации в текстовом редакторе.
- Найдите в файле раздел [mysqld].
- Добавьте следующую строку в раздел [mysqld]:
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"Эта строка устанавливает для режима SQL значение, не включающее «only_full_group_by».
- Сохраните файл конфигурации и перезапустите сервер MySQL, чтобы изменения вступили в силу.