с помощью групповой функции concat в phpmyadmin покажет результат в виде [клякса - 3Б]



У меня есть запрос, который использует GROUP_CONCAT mysql на целочисленном поле.

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



запрос



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


(оба поля без знака int, оба не уникальны)



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

711   6  

6 ответов:

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

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

решил, что я поделюсь, если у вас все еще есть проблема с этим.

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

SELECT rec_id, GROUP_CONCAT(CAST(user_id AS CHAR))
FROM t1
GROUP BY rec_id

для меня, это помогло (нашел его в этом блоге):

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

CONVERT(GROUP_CONCAT(user_id) USING 'utf8')

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

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

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

set session group_concat_max_len = 512;

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

System.Text.Encoding.Default.GetString((byte[])DataTable.Rows[0][0]);

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

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

для этого:

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

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

Comments

    Ничего не найдено.