использование 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, оба не уникальны)
что я должен добавить, чтобы увидеть реальные результаты?
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] должны начать отображаться как их значения без необходимости добавлять какие-либо другие специальные параметры конфигурации.