Отключить ONLY_FULL_GROUP_BY

if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ) {
  $('ul.sub-menu ').css('display', 'block');
}

Вы пробовали следующее?

485
задан fedorqui 11 March 2016 в 21:18
поделиться

1 ответ

Добавьте или режимы Remove к sql_mode

MySQL 5.7.9 или позже

, Чтобы добавить или удалить режим от sql_mode, можно использовать list_add и list_drop функции.

Для удаления режима из тока SESSION.sql_mode можно использовать одно из следующего:

SET SESSION sql_mode = sys.list_drop(@@SESSION.sql_mode, 'ONLY_FULL_GROUP_BY');
SET sql_mode = sys.list_drop(@@sql_mode, 'ONLY_FULL_GROUP_BY');
SET @@sql_mode = sys.list_drop(@@sql_mode, 'ONLY_FULL_GROUP_BY');

Для удаления режима из GLOBAL.sql_mode, который сохраняется для тока время выполнения операция пока сервис не , перезапустил .

SET GLOBAL sql_mode = sys.list_drop(@@GLOBAL.sql_mode, 'ONLY_FULL_GROUP_BY');

MySQL 5.7.8 или предшествующий

Начиная с эти sql_mode значение является строкой CSV режимов, необходимо было бы удостовериться, что строка не содержит остаточные запятые, которые могут быть выполнены при помощи [1 143] TRIM(BOTH ',' FROM ...) .

Для удаления режима из sql_mode переменная Вы хотели бы использовать REPLACE() наряду с [1 118], чтобы гарантировать, что любые остаточные запятые удалены.

SET SESSION sql_mode = TRIM(BOTH ',' FROM REPLACE(@@SESSION.sql_mode, 'ONLY_FULL_GROUP_BY', ''));
SET GLOBAL sql_mode = TRIM(BOTH ',' FROM REPLACE(@@GLOBAL.sql_mode, 'ONLY_FULL_GROUP_BY', ''));

Для добавления режима к sql_mode переменная Вы хотели бы использовать CONCAT_WS(',', ...) , гарантировать, что запятая добавляется с текущими режимами и TRIM(), чтобы гарантировать, что любые остаточные запятые удалены.

SET SESSION sql_mode = TRIM(BOTH ',' FROM CONCAT_WS(',', 'ONLY_FULL_GROUP_BY', @@SESSION.sql_mode));
SET GLOBAL sql_mode = TRIM(BOTH ',' FROM CONCAT_WS(',', 'ONLY_FULL_GROUP_BY', @@GLOBAL.sql_mode));

ПРИМЕЧАНИЕ: Изменение GLOBAL переменная делает не , распространяют к SESSION переменная, пока новое соединение не устанавливается.

GLOBAL переменная сохранится, пока рабочий сервис не перезапущен.

SESSION переменная сохранится для текущего соединения, пока соединение не будет закрыто, и устанавливается новое соединение.

<час>

Возвращаются к [1 126]

, Так как SET sql_mode = 'ONLY_FULL_GROUP_BY'; выполнялся без GLOBAL модификатор, изменение только влияло на ток SESSION значение состояния, которое также принадлежит [1 130]. Чтобы удалить его и вернуться к глобальному значение по умолчанию на перезапуске сервера значение, Вы хотели бы использовать значение от [1 131]. [так]

ток SESSION значение только допустимо для текущего соединения. Повторное подключение к серверу вернется значение назад к эти GLOBAL значение.

Для возвращения текущего значения состояния сеанса к текущему глобальному значению можно использовать одно из следующего:

SET SESSION sql_mode = @@GLOBAL.sql_mode;
SET @@sql_mode = @@GLOBAL.sql_mode;
SET sql_mode = @@GLOBAL.sql_mode;

Изменение SESSION.sql_mode значение к [1 135]

SET sql_mode = 'ONLY_FULL_GROUP_BY';
SELECT @@sql_mode, @@GLOBAL.sql_mode;
+--------------------+----------------------------------------------+
| @@sql_mode         | @@GLOBAL.sql_mode                            |
+--------------------+----------------------------------------------+
| ONLY_FULL_GROUP_BY | NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION |
+--------------------+----------------------------------------------+

Возвращается эти SESSION.sql_mode значение к GLOBAL.sql_mode значение

SET sql_mode = @@GLOBAL.sql_mode;
SELECT @@sql_mode, @@GLOBAL.sql_mode;
+----------------------------------------------+----------------------------------------------+
| @@sql_mode                                   | @@GLOBAL.sql_mode                            |
+----------------------------------------------+----------------------------------------------+
| NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION | NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------+----------------------------------------------+
<час>

Перезапуск Сервера, Персистентный sql_mode

Для установки режим SQL при запуске сервера, использует --sql-mode="modes" опция на командной строке, или sql-mode="modes" в файле опции, таком как my.cnf (Операционные системы Unix) или my.ini (Windows). [так]

посмотрите свою версию MySQL для определения поддерживаемого и по умолчанию режимы .

[mysqld]

sql-mode="NO_ENGINE_SUBSTITUTION" #default <= 5.7.4
1
ответ дан 22 November 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: