Подтвердить что ты не робот

Как я могу напрямую просматривать blob в MySQL Workbench

Я использую MySQL Workbench CE 5.2.30 CE/Rev 6790. При выполнении следующего утверждения:

SELECT OLD_PASSWORD("test")

Я получаю только приятный значок BLOB, мне нужно щелкнуть левой кнопкой мыши, чтобы выбрать ячейку, щелкните правой кнопкой мыши и выберите "Открыть значение в средстве просмотра" и выберите вкладку "Текст".

Используя то же самое с phpMyAdmin, я получаю прямо обратно значение вызова OLD_PASSWORD. Это просто пример, но есть ли способ увидеть такие результаты непосредственно на выходе?

4b9b3361

Ответ 1

Короче:

  1. Перейти в "Правка"> "Настройки"
  2. Выберите редактор SQL
  3. В разделе Выполнение SQL установите флажок Обрабатывать BINARY/VARBINARY как строку недвоичных символов.
  4. Перезапустите MySQL Workbench (вам не будет предложено или проинформировано об этом требовании).

В MySQL Workbench 6. 0+

  1. Перейдите в "Правка"> "Настройки"
  2. Выберите SQL-запросы
  3. В разделе Результаты запроса установите флажок Обрабатывать BINARY/VARBINARY как строку недвоичных символов.
  4. Перезапуск MySQL Workbench не обязательно (вам не будет предложено или проинформировано об этом требовании). *

С помощью этого параметра вы сможете объединять поля, не получая BLOB-объектов.

Я думаю, что это относится к версиям 5.2.22 и выше и является результатом этой ошибки MySQL.

Отказ от ответственности: я не знаю, какова обратная сторона этого параметра - может быть, когда вы выбираете значения BINARY/VARBINARY вы увидите его в виде простого текста, который может вводить в заблуждение и/или, возможно, он будет снижать производительность, если они достаточно велики?

Ответ 2

Выполните три шага:

  • Перейдите в раздел "Настройки WorkBench" → Выберите "Редактор SQL" в разделе "Результаты запроса": установите флажок "Обработать BINARY/VARBINARY как недвоичную строку символов"

  • Перезагрузите MySQL WorkBench.

  • Теперь выберите SELECT SUBSTRING(BLOB<COLUMN_NAME>,1,2500) FROM <Table_name>;

Ответ 3

Я не уверен, отвечает ли этот вопрос на вопрос, но если вы щелкните правой кнопкой мыши по значку "blob" в поле (при просмотре таблицы), появится опция "Открыть значение в редакторе". Одна из вкладок позволяет вам просматривать blob. Это верно. 5.2.34

Ответ 4

литье работает, но это боль, поэтому я бы рекомендовал использовать метод spioter, если вы не используете много по-настоящему данных blob.

SELECT CAST(OLD_PASSWORD("test") AS CHAR)

Вы также можете использовать другие типы и даже ограничивать размер, но большую часть времени я просто использую CHAR: http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast

Ответ 5

Кажется невозможным, я боюсь, его указали как ошибку в workbench: http://bugs.mysql.com/bug.php?id=50692 Было бы очень полезно, хотя!

Ответ 6

имела ту же проблему, согласно документации MySQL, вы можете выбрать подстроку BLOB:

SELECT id, SUBSTRING(comment,1,2000) FROM t

HTH, glissi

Ответ 7

Рабочее место 6.3
Следуйте за высоким счетом, затем используйте UNCOMPRESS()

(Короче говоря:
 1. Перейдите в меню "Редактирование" > "Настройки"
 2. Выберите Редактор SQL
 3. В разделе "Выполнение SQL" установите флажок "Обработка BINARY/VARBINARY" как небиная строка символов
 4. Перезагрузите MySQL Workbench (вам не будет предложено или не информировано об этом требовании).

Тогда

SELECT SUBSTRING(UNCOMPRESS(<COLUMN_NAME>),1,2500) FROM <Table_name>;

или

SELECT CAST(UNCOMPRESS(<COLUMN_NAME>) AS CHAR) FROM <Table_name>;

Если вы просто положили UNCOMPRESS(<COLUMN_NAME>), вы можете щелкнуть правой кнопкой мыши по блоку и нажать "Открыть значение в редакторе".

Ответ 8

Я собрал вместе несколько других постов, так как исправление "предпочтений" на рабочем месте не помогло мне. (WB 6.3)

SELECT CAST('column' AS CHAR(10000) CHARACTER SET utf8) FROM 'table';

Ответ 9

есть несколько вещей, которые вы можете сделать

SELECT GROUP_CONCAT(CAST(name AS CHAR))
FROM product
WHERE  id   IN (12345,12346,12347)

Если вы хотите заказать по запросу, вы можете заказать его, а также ниже

SELECT GROUP_CONCAT(name ORDER BY name))
FROM product
WHERE id   IN (12345,12346,12347)

как говорится в этом блоге

http://www.kdecom.com/mysql-group-concat-blob-bug-solved/

Ответ 10

ПРИМЕЧАНИЕ. Предыдущие ответы здесь не особенно полезны, если большой двоичный объект представляет собой произвольную последовательность байтов; например, BINARY (16) для хранения 128-битного GUID или контрольной суммы md5.

В этом случае в настоящее время нет предпочтений редактора - хотя я уже отправил запрос на добавление функции - см. Этот запрос для более подробного объяснения.

[До тех пор, пока не будет реализован этот запрос функции], решением является HEX функция в запросе: SELECT HEX(mybinarycolumn) FROM mytable.


Альтернативой является использование phpMyAdmin вместо MySQL Workbench - там по умолчанию отображается hex.

Ответ 11

select CONVERT((column_name) USING utf8) FROM table;

В моем случае Workbench не работает. поэтому я использовал вышеупомянутое решение для отображения данных BLOB-объектов в виде текста.

Ответ 12

SELECT *, CONVERT (UNCOMPRESS (столбец) ИСПОЛЬЗОВАНИЕ "utf8" ) AS column FROM имя_таблицы