MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment fonctionne UNHEX() dans MariaDB

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) 

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() donne null :

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'