MySQL group_concat_max_len в запросе

Я ищу способ вставить этот

SET GLOBAL group_concat_max_len=15000

в существующем SQL-запросе, например:

SELECT * 
FROM `Pages` 
WHERE id =1 
UNION SELECT 1 , 2, IF( 1 >0, SET GLOBAL group_concat_max_len=15000,'B' ) 

Но я не мог заставить его работать, потому что обычно этот запрос выполняется сам по себе, и мне было интересно, есть ли у некоторых из вас какие-либо идеи, как заставить его работать

Ответ 1

Вы не можете использовать оператор SET внутри выражения, которое вы делаете, или даже в подзапросе. Выполните SET в одном из утверждений. Установленное вами значение повлияет на последующие утверждения.

Кстати, знаете ли вы, что SET GLOBAL означает, что этот параметр повлияет на все другие подключения MySQL на вашем сервере, и этот параметр будет сохраняться даже после завершения текущего сеанса, пока вы не установите его на что-то еще? Вы можете использовать SET SESSION, если хотите, чтобы значение повлияло на текущий сеанс.

Ответ 2

Максимально допустимая длина результата в байтах для функции GROUP_CONCAT(). Значение по умолчанию - 1024. mysql > показать переменные типа 'group%';

Вы изменяете значение group_concat_max_len. Либо в вашем файле конфигурации, либо в настройке переменной сеанса, например. "SET @@group_concat_max_len = 2048; '

Ответ 3

CI3 Пример: вы не можете их комбинировать, но вы можете выполнить отдельный запрос, например:

public function myModelFunction($id){

//set mysql session variable
$this->db->query("SET @@group_concat_max_len = 2048;");

//actual query
$query= $this->db->query("").....

Ответ 4

Вы можете выполнять их один за другим, и я думаю, что он будет иметь желаемый эффект или отделить его; знак.

Ответ 5

Для нового пользователя при поиске решения при увеличении group_concat_max_len я обнаружил, что в некоторых случаях переменная не была определена в файле my.cnf. Нечего беспокоиться о том, чтобы просто добавить эту переменную group_concat_max_len = XXXXX под заголовком [mysqld] в файле my.cnf и перезапустить mysql... вы СОВЕРШЕНА!!!

XXXXX = желаемое значение, например: 2048,4096 и т.д.