Как я могу непосредственно просматривать BLOB-объекты в MySQL Workbench - PullRequest
57 голосов
/ 03 декабря 2010

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

SELECT OLD_PASSWORD("test")

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

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

Ответы [ 12 ]

96 голосов
/ 06 сентября 2011

Короче говоря:

  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, вы увидите его в виде обычного текста, который может вводить в заблуждение и / или, возможно, он будет снижать производительность, если они достаточно велики?

24 голосов
/ 02 ноября 2012

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

  1. Перейдите в «Настройки WorkBench» -> выберите «Редактор SQL» в разделе «Результаты запроса»: установите флажок «Обрабатывать BINARY / VARBINARY как строку недвоичных символов»

  2. Перезапустите MySQL WorkBench.

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

22 голосов
/ 01 августа 2011

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

13 голосов
/ 21 мая 2012

литье работает, но это неприятно, поэтому я бы рекомендовал использовать метод Спиотера, если вы не используете много действительно больших данных.

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

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

5 голосов
/ 23 декабря 2010

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

4 голосов
/ 18 мая 2011
У

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

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

HTH, glissi

3 голосов
/ 16 марта 2018

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

SELECT CAST(`column` AS CHAR(10000) CHARACTER SET utf8) FROM `table`;
3 голосов
/ 06 октября 2016

верстак 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>), вы можете щелкнуть правой кнопкой мыши BLOB-объект и щелкнуть «Открыть значение в редакторе».

2 голосов
/ 29 апреля 2013

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

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/

1 голос
/ 09 апреля 2019

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

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

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


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

...