sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer UNHEX() i MariaDB

I MariaDB, UNHEX() er en indbygget strengfunktion, der udfører den omvendte operation af HEX() funktion.

Hvorimod HEX() funktion returnerer en hexadecimal repræsentation af en given streng, UNHEX() funktion returnerer strengrepræsentationen af ​​en given hexadecimal værdi.

Specifikt UNHEX() fortolker hvert par hexadecimale cifre i dets argument som et tal og konverterer det derefter til tegnet repræsenteret af tallet.

Resultatet returneres som en binær streng.

Syntaks

Syntaksen ser sådan ud:

UNHEX(str)

Hvor str er den hexadecimale værdi, der skal "unhexed".

Eksempel

Her er et grundlæggende eksempel:

SELECT UNHEX('61');

Resultat:

+-------------+
| UNHEX('61') |
+-------------+
| a           |
+-------------+

Den hexadecimale repræsentation af det lille bogstav a er 61 , og så ved at sende 61 til UNHEX() funktion, får vi det lille bogstav a .

Her er et eksempel, der løber gennem et par hexadecimale værdier:

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');

Resultat (ved hjælp af lodret output):

                      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'): Cat
                  UNHEX('446F67'): Dog
UNHEX('50617773202620436C617773'): Paws & Claws
              UNHEX('5A65627261'): Zebra

Sammenlignet med HEX()

Her er et eksempel, der indlejrer HEX() inde i UNHEX() for at returnere den originale streng:

SELECT 
    HEX('Homer Jay'),
    UNHEX(HEX('Homer Jay'));

Resultat:

+--------------------+-------------------------+
| HEX('Homer Jay')   | UNHEX(HEX('Homer Jay')) |
+--------------------+-------------------------+
| 486F6D6572204A6179 | Homer Jay               |
+--------------------+-------------------------+

Husk dog, at UNHEX() returnerer sit resultat som en binær streng:

SELECT 
    COLLATION('Homer Jay') AS "Literal",
    COLLATION(HEX('Homer Jay')) AS "HEX()",
    COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()";

Resultat:

+-----------------+-----------------+---------+
| Literal         | HEX()           | UNHEX() |
+-----------------+-----------------+---------+
| utf8_general_ci | utf8_general_ci | binary  |
+-----------------+-----------------+---------+

Nul-argumenter

Sender null til UNHEX() resulterer i null :

SELECT UNHEX(null);

Resultat:

+-------------+
| UNHEX(null) |
+-------------+
| NULL        |
+-------------+

Ingen argumenter bestået

Kalder UNHEX() uden at sende nogen argumenter resulterer det i en fejl:

SELECT UNHEX();

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNHEX'

  1. Sådan returneres elementer fra et JSON-array i MariaDB

  2. Hvordan kan du navngive datasættets tabeller, du returnerer i en lagret proc?

  3. Om GO-kommandoen i SQL Server

  4. Mest effektive måde i SQL Server at få dato fra dato+tid?