Using group_concat в PHPMYADMIN покажет результат как [BLOB - 3B]

У меня есть запрос, который использует GROUP_CONCAT mysql в целочисленном поле.
Я использую PHPMYADMIN для разработки этого запроса. Моя проблема в том, что вместо отображения 1,2, являющегося результатом конкатенированного поля, я получаю [BLOB - 3B].

Запрос

SELECT rec_id,GROUP_CONCAT(user_id)
FROM t1
GROUP BY rec_id

(оба поля являются unsigned int, оба не уникальны)

Что я должен добавить, чтобы увидеть фактические результаты?

+51
источник поделиться
6 ответов

Как раз над результатом запроса (слева) вы увидите +options. Нажмите его и отметьте

Показать содержимое BLOB

+19
источник

Похоже, что GROUP_CONCAT ожидает, что это значение будет строкой. Я просто столкнулся с той же проблемой. Решил его, преобразовывая столбец int в строку следующим образом:

SELECT rec_id,GROUP_CONCAT(CONVERT(user_id, CHAR(8)))
FROM t1
GROUP BY rec_id

Понятно, что я поделился бы тем, что у вас все еще была проблема с этим.

+79
источник

Согласно документации MySQL, CAST(expr AS type) является стандартным SQL и поэтому должен быть переписан. Кроме того, вы можете опустить длину строки. Поэтому Id предлагает следующее:

SELECT rec_id, GROUP_CONCAT(CAST(user_id AS CHAR))
FROM t1
GROUP BY rec_id
+39
источник

Для меня это помогло (нашло это в этом сообщении ):

В моем случае параметр GROUP_CONCAT был строкой, но функция все еще приводила к BLOB, но преобразовывала результат работы GROUP_CONCAT.

CONVERT(GROUP_CONCAT(user_id) USING 'utf8')
+21
источник

Вы можете сделать это:

set session group_concat_max_len = 512;

Если group_concat_max_len больше 512, запрос вернет байт []. Но вы можете перейти к строке.

System.Text.Encoding.Default.GetString((byte[])DataTable.Rows[0][0]);
0
источник

Если у вас есть доступ к файлу config.inc.php в каталоге phpMyAdmin, тогда Я считаю, что лучшим решением является изменение этой строки:

$cfg['Servers'][$i]['extension'] = 'mysql';

:

$cfg['Servers'][$i]['extension'] = 'mysqli';

Если у вас есть расширение mysqli, используйте его. Он более безопасен, немного оптимизирован, и по умолчанию он использует тип BLOB типа utf-8. Ваши записи [BLOB] должны начинаться как их значения без необходимости добавлять какие-либо другие специальные параметры конфигурации.

-1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос