mysql GROUP_CONCAT всегда возвращает большой двоичный объект, я даже меняю всю справку group_concat_max_len=100000000?

#mysql #blob #group-concat

#mysql #клякса #group-concat #большой двоичный объект

Вопрос:

Я перепробовал почти все учебники в Интернете, пытаясь изменить group_concat_max_len, но поскольку файл my.ini не существовал group_concat_max_len на сервере wamp, и я выполняю следующие запросы, отображающие переменные типа ‘group%’; и УСТАНОВИТЕ @@group_concat_max_len = 9999999; но в нем говорится, что какие-либо строки затронуты, как я могу это исправить? Я не нахожу решения, пожалуйста, помогите

Я уже делаю запрос, но у меня не получается, он возвращает blob

 SET GLOBAL group_concat_max_len=4096;
SELECT correo_id_correo, GROUP_CONCAT(destinatario_id_usuario SEPARATOR ',') FROM correo_has_usuario GROUP BY correo_id_correo;
  

Ответ №1:

Согласно странице руководства для GROUP_CONCAT():

Тип результата — TEXT или BLOB, если group_concat_max_len не меньше или не равно 512, и в этом случае тип результата — VARCHAR или VARBINARY .

Таким образом, увеличение group_concat_max_len не вернет VARCHAR или VARBINARY . Вам нужно будет уменьшить его.

Комментарии:

1. Я попробовал этот НАБОР GLOBAL group_concat_max_len= 2000; ВЫБЕРИТЕ correo_id_correo, GROUP_CONCAT(РАЗДЕЛИТЕЛЬ destinatario_id_usuario ‘,’) ИЗ ГРУППЫ correo_has_usuario С ПОМОЩЬЮ correo_id_correo; бит, который не работает, я также уменьшаю, но какое-либо другое решение?

2. Пожалуйста, внимательно прочитайте: оно должно быть меньше или равно 512 . В любом случае, чего именно вы пытаетесь достичь?

3. hablas espaniol? вы говорите по-испански? Я уже решил с вашей помощью, спасибо, но я попытался изменить его.файл my.ini, а свойство group_concat_max_len не существует, вы знаете, почему?

4. Указывать все настройки необязательно. MySQL будет использовать значения по умолчанию практически для всего. Добавьте строку самостоятельно. (Да, я могу говорить по-испански, но я напоминаю вам, что это англоязычный сайт.)

Ответ №2:

Попробуйте это

 SELECT concat(CONVERT(column1,char(8))," , ") AS id,
       group_concat(CONVERT(column2, CHAR(20)) separator '|') AS result 
FROM `tablename` 
WHERE 1 group by column1
  

Здесь CONVERT будет преобразовано значение поля column1 в тип char. и CONVERT функция будет работать над этим.

Источник: Coderhub