Dans MariaDB, UNHEX()
est une fonction de chaîne intégrée qui effectue l'opération inverse du HEX()
fonction.
Alors que le HEX()
La fonction renvoie une représentation hexadécimale d'une chaîne donnée, le UNHEX()
renvoie la représentation sous forme de chaîne d'une valeur hexadécimale donnée.
Plus précisément, UNHEX()
interprète chaque paire de chiffres hexadécimaux dans son argument comme un nombre, puis le convertit en caractère représenté par le nombre.
Le résultat est renvoyé sous forme de chaîne binaire.
Syntaxe
La syntaxe ressemble à ceci :
UNHEX(str)
Où str
est la valeur hexadécimale à "unhexed".
Exemple
Voici un exemple de base :
SELECT UNHEX('61');
Résultat :
+-------------+| UNHEX('61') |+-------------+| a |+-------------+
La représentation hexadécimale de la lettre minuscule a
est 61
, et donc en passant 61
au UNHEX()
fonction, on obtient la lettre minuscule a
.
Voici un exemple qui passe par quelques valeurs hexadécimales supplémentaires :
SELECT
UNHEX('61'),
UNHEX('6161'),
UNHEX('41'),
UNHEX('4141'),
UNHEX('62'),
UNHEX('6262'),
UNHEX('42'),
UNHEX('4242'),
UNHEX('436174'),
UNHEX('446F67'),
UNHEX('50617773202620436C617773'),
UNHEX('5A65627261');
Résultat (en utilisant la sortie verticale) :
UNHEX('61'):a UNHEX('6161'):aa UNHEX('41'):A UNHEX('4141'):AA UNHEX('62'):b UNHEX('6262'):bb UNHEX('42'):B UNHEX('4242'):BB UNHEX('436174'):Chat UNHEX('446F67'):ChienUNHEX('50617773202620436C617773'):Pattes &Griffes UNHEX('5A65627261'):Zèbre
Comparé à HEX()
Voici un exemple qui imbrique HEX()
à l'intérieur de UNHEX()
pour renvoyer la chaîne d'origine :
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
Résultat :
+--------------------+------------------------- +| HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) |+--------------------+----------------- --------+| 486F6D6572204A6179 | Homer Jay |+--------------------+------------------------- +
Cependant, gardez à l'esprit que UNHEX()
renvoie son résultat sous forme de chaîne binaire :
SELECT
COLLATION('Homer Jay') AS "Literal",
COLLATION(HEX('Homer Jay')) AS "HEX()",
COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()";
Résultat :
+-----------------+-----------------+---------+ | littéral | HEX() | UNHEX() |+-----------------+-----------------+--------- +| utf8_general_ci | utf8_general_ci | binaire |+-----------------+-----------------+---------+Arguments nuls
Passer
null
àUNHEX()
donnenull
:SELECT UNHEX(null);
Résultat :
+-------------+| UNHEX(null) |+-------------+| NULL |+-------------+Passer aucun argument
Appel de
UNHEX()
sans passer d'arguments entraîne une erreur :SELECT UNHEX();
Résultat :
ERREUR 1582 (42000) :Nombre de paramètres incorrect dans l'appel à la fonction native 'UNHEX'