J'utilise MySQL Workbench CE 5.2.30 CE/Rev 6790. Lorsque vous exécutez l'instruction suivante:
SELECT OLD_PASSWORD("test")
Je ne récupère qu'une icône Nice BLOB
. Je dois cliquer avec le bouton gauche de la souris pour sélectionner la cellule, cliquer avec le bouton droit de la souris et choisir "Ouvrir une valeur dans l'afficheur", puis sélectionner l'onglet "Texte".
En utilisant la même chose avec phpMyAdmin, je récupère directement la valeur du OLD_PASSWORD
appel. Ce n'est qu'un exemple, mais existe-t-il un moyen de voir directement de tels résultats dans la sortie?
En bref:
Dans MySQL Workbench 6.0 +
Avec ce paramètre, vous pourrez concaténer des champs sans générer de gouttes.
Je pense que cela s’applique aux versions 5.2.22 et supérieures et est le résultat de ce bogue MySQL .
Avertissement: je ne connais pas les inconvénients de ce paramètre - peut-être que lorsque vous sélectionnez les valeurs BINARY
/VARBINARY
, vous le verrez sous forme de texte brut pouvant être trompeur et/ou peut-être va nuire aux performances si elles sont assez grandes?
Effectuez trois étapes:
Allez dans "Préférences WorkBench" -> Choisissez "Editeur SQL" Sous "Résultats de la requête": cochez "Traiter BINARY/VARBINARY comme une chaîne de caractères non binaire"
Redémarrez MySQL WorkBench.
Maintenant, sélectionnez SELECT SUBSTRING(BLOB<COLUMN_NAME>,1,2500) FROM <Table_name>;
Je ne sais pas si cela répond à la question, mais si vous cliquez avec le bouton droit de la souris sur l'icône "blob" dans le champ (lors de l'affichage du tableau), l'option "Ouvrir une valeur dans l'éditeur" est disponible. L'un des onglets vous permet de visualiser le blob. Ceci est en ver. 5.2.34
le casting fonctionne, mais c’est pénible, je vous recommande donc d’utiliser la méthode de Spioter à moins que vous n’utilisiez beaucoup de données véritablement blob.
SELECT CAST(OLD_PASSWORD("test") AS CHAR)
Vous pouvez également utiliser d'autres types, et même en limiter la taille, mais la plupart du temps, j'utilise simplement CHAR: http://dev.mysql.com/doc/refman/5.5/en/cast-functions. html # function_cast
Je crains que cela ne semble pas possible. Il est répertorié comme un bogue dans Workbench: http://bugs.mysql.com/bug.php?id=50692 Ce serait très utile si !
avait le même problème, selon la documentation MySQL , vous pouvez sélectionner une sous-chaîne d'un BLOB:
SELECT id, SUBSTRING(comment,1,2000) FROM t
HTH, glissi
Établi 6.3
Suivez la réponse avec les meilleurs scores puis utilisez UNCOMPRESS()
(En bref:
1. Allez dans Edition> Préférences
2. Choisissez l'éditeur SQL
3. Sous Exécution SQL, cochez Traiter BINARY/VARBINARY comme une chaîne de caractères non binaire.
4. Redémarrez MySQL Workbench (vous ne serez ni invité ni informé de cette exigence).)
Ensuite
SELECT SUBSTRING(UNCOMPRESS(<COLUMN_NAME>),1,2500) FROM <Table_name>;
ou
SELECT CAST(UNCOMPRESS(<COLUMN_NAME>) AS CHAR) FROM <Table_name>;
Si vous ne mettez que UNCOMPRESS(<COLUMN_NAME>)
, vous pouvez cliquer avec le bouton droit de la souris sur blob et cliquer sur "Open Value in Editor".
J'ai reconstitué quelques-uns des autres articles ensemble, car la correction des préférences de l'atelier ne fonctionnait pas pour moi. (WB 6.3)
SELECT CAST(`column` AS CHAR(10000) CHARACTER SET utf8) FROM `table`;
il y a peu de choses que vous puissiez faire
SELECT GROUP_CONCAT(CAST(name AS CHAR))
FROM product
WHERE id IN (12345,12346,12347)
Si vous voulez commander par requête, vous pouvez aussi commander par casting comme ci-dessous
SELECT GROUP_CONCAT(name ORDER BY name))
FROM product
WHERE id IN (12345,12346,12347)
comme il est dit sur ce blog
Remarque: les réponses précédentes ici ne sont pas particulièrement utiles si le BLOB est une séquence d'octets arbitraire; par exemple. BINARY (16) pour stocker 128 bits GUID ou md5 somme de contrôle.
Dans ce cas, il n'y a actuellement aucune préférence de l'éditeur - bien que j'ai soumis une demande de fonctionnalité maintenant - voir cette demande pour une explication plus détaillée.
[Jusqu'à/sauf si cette demande de fonctionnalité est implémentée], la solution est HEX
fonction dans une requête: SELECT HEX(mybinarycolumn) FROM mytable
.
Une alternative consiste à utiliser phpMyAdmin au lieu de MySQL Workbench - l'hex est affiché par défaut.
select CONVERT((column_name) USING utf8) FROM table;
Dans mon cas, Workbench ne fonctionne pas. J'ai donc utilisé la solution ci-dessus pour afficher les données blob sous forme de texte.