MySQL group_concat_max_len в запросе - PullRequest
       1

MySQL group_concat_max_len в запросе

11 голосов
/ 04 августа 2011

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

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' ) 

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

Ответы [ 5 ]

12 голосов
/ 05 августа 2011

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

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

5 голосов
/ 09 июня 2016

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

public function myModelFunction($id){

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

//actual query
$query= $this->db->query("").....
3 голосов
/ 30 марта 2012

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

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

1 голос
/ 04 августа 2011

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

0 голосов
/ 11 декабря 2014

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

XXXXX = нужное вам значение, например: 2048,4096 и т. Д..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...