Hoe kan ik blobs direct in MySQL Workbench bekijken

Ik gebruik MySQL Workbench CE 5.2.30 CE / Rev 6790 . Wanneer u de volgende instructie uitvoert:

SELECT OLD_PASSWORD("test")

Ik krijg alleen een mooi BLOB-pictogram terug, ik moet met de linkermuisknop klikken om de cel te selecteren, met de rechtermuisknop klikken en “Open waarde in viewer” kiezen en het tabblad “Tekst” selecteren.

Als ik hetzelfde gebruik met phpMyAdmin, krijg ik direct de waarde van de OLD_PASSWORD-aanroep terug. Het is maar een voorbeeld, maar is er een manier om dergelijke resultaten direct in de uitvoer te zien?


Antwoord 1, autoriteit 100%

Kortom:

  1. Ga naar Bewerken> Voorkeuren
  2. Kies SQL-editor
  3. Vink onder SQL-uitvoeringBINARY/VARBINARY behandelen als niet-binaire tekenreeks
  4. aan

  5. Start MySQL Workbench opnieuw (u wordt niet gevraagd of geïnformeerd over deze vereiste).

In MySQL Workbench 6.0+

  1. Ga naar Bewerken> Voorkeuren
  2. Kies SQL-query’s
  3. Vink onder ZoekresultatenBINARY/VARBINARY behandelen als niet-binaire tekenreeks
  4. aan

  5. Het is niet verplicht om MySQL Workbench opnieuw te starten (u wordt niet gevraagd of geïnformeerd over deze vereiste).*

Met deze instelling kun je velden samenvoegen zonder blobs te krijgen.

Ik denk dat dit van toepassing is op versie 5.2.22 en hoger en het resultaat is van deze MySQL bug.

Disclaimer: ik weet niet wat het nadeel van deze instelling is – misschien ziet u het als platte tekst als u BINARY/VARBINARY-waarden selecteert, wat misleidend zijn en/of kan het de prestaties belemmeren als ze groot genoeg zijn?


Antwoord 2, autoriteit 27%

Ik weet niet zeker of dit de vraag beantwoordt, maar als u met de rechtermuisknop op het “blob”-pictogram in het veld klikt (bij het bekijken van de tabel), is er een optie om “Waarde te openen in Editor”. Op een van de tabbladen kunt u de blob bekijken. Dit is in vers. 5.2.34


Antwoord 3, autoriteit 25%

Voer drie stappen uit:

  1. Ga naar “WorkBench-voorkeuren” –> Kies “SQL Editor” onder “Query Results”: vink “BINARY/VARBINARY behandelen als niet-binaire tekenreeks” aan

  2. Start MySQL WorkBench opnieuw.

  3. Selecteer nu SELECT SUBSTRING(<BLOB_COLUMN_NAME>,1,2500) FROM <Table_name>;


Antwoord 4, autoriteit 12%

casting werkt, maar het is lastig, dus ik raad aan om de methode van spioter te gebruiken, tenzij je veel echte blob-gegevens gebruikt.

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

Je kunt ook casten als andere typen en zelfs de grootte beperken, maar meestal gebruik ik gewoon CHAR:
http://dev.mysql.com/doc/refman /5.5/en/cast-functions.html#function_cast


Antwoord 5, autoriteit 7%

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

In mijn geval werkt Workbench niet. dus ik heb de bovenstaande oplossing gebruikt om blob-gegevens als tekst weer te geven.


Antwoord 6, autoriteit 5%

Het lijkt niet mogelijk ben ik bang, het staat vermeld als een bug in de workbench:
http://bugs.mysql.com/bug.php?id=50692
Het zou echter erg handig zijn!


Antwoord 7, autoriteit 4%

had hetzelfde probleem, volgens de MySQL-documentatie, kunt u een subtekenreeks van een BLOB selecteren:

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

HTH, glissi


Antwoord 8, autoriteit 4%

Ik heb een paar van de andere berichten samengevoegd, omdat de fix voor de ‘voorkeuren’ van de werkbank niet voor mij werkte. (WB 6.3)

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

Antwoord 9, autoriteit 3%

Werkbank 6.3
Volg Hoog scorend antwoord en gebruik vervolgens UNCOMPRESS()

(Kortom:
1. Ga naar Bewerken > Voorkeuren
2. Kies SQL-editor
3. Schakel onder SQL-uitvoering de optie BINARY/VARBINARY behandelen als niet-binaire tekenreeks in
4. Start MySQL Workbench opnieuw (u wordt niet gevraagd of geïnformeerd over deze vereiste).

Dan

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

of

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

Als u gewoon UNCOMPRESS(<COLUMN_NAME>)plaatst, kunt u met de rechtermuisknop op de blob klikken en op “Waarde openen in Editor” klikken.


Antwoord 10, autoriteit 2%

er zijn maar weinig dingen die u kunt doen

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

Als u op basis van de zoekopdracht wilt bestellen, kunt u ook per cast bestellen, zoals hieronder

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

zoals op deze blog staat

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


Antwoord 11

OPMERKING: De eerdere antwoorden hier zijn niet bijzonder nuttig als de BLOB een willekeurige reeks bytes is; bijv. BINARY (16) om 128-bit GUID of md5 checksum op te slaan.

In dat geval is er momenteel geen editorvoorkeur — hoewel ik een functieverzoek nu— zie dat verzoek voor meer gedetailleerde uitleg.

[Tot/tenzij dat functieverzoek is geïmplementeerd], is de oplossing de functie HEXin een query: SELECT HEX(mybinarycolumn) FROM mytable.


Een alternatief is om phpMyAdminte gebruiken in plaats van MySQL Workbench – daar wordt standaard hex weergegeven.


Antwoord 12

SELECTEER *, CONVERT (UNCOMPRESS(kolom) GEBRUIKEN “utf8”) AS kolom FROM table_name

Other episodes