sql >> Databasteknik >  >> RDS >> MariaDB

Hur UNHEX() fungerar i MariaDB

I MariaDB, UNHEX() är en inbyggd strängfunktion som utför den omvända operationen av HEX() funktion.

Medan HEX() funktion returnerar en hexadecimal representation av en given sträng, UNHEX() funktion returnerar strängrepresentationen av ett givet hexadecimalt värde.

Närmare bestämt UNHEX() tolkar varje par hexadecimala siffror i sitt argument som ett tal och konverterar det sedan till det tecken som representeras av talet.

Resultatet returneras som en binär sträng.

Syntax

Syntaxen ser ut så här:

UNHEX(str)

Där str är det hexadecimala värdet som ska ”ohexas”.

Exempel

Här är ett grundläggande exempel:

SELECT UNHEX('61');

Resultat:

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

Den hexadecimala representationen av den gemena bokstaven a är 61 , och så genom att skicka 61 till UNHEX() funktion får vi den gemena bokstaven a .

Här är ett exempel som går igenom några fler hexadecimala värden:

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 (med vertikal utdata):

                      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

Jämfört med HEX()

Här är ett exempel som kapslar HEX() inuti UNHEX() för att returnera den ursprungliga strängen:

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

Resultat:

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

Kom dock ihåg att UNHEX() returnerar resultatet som en binär sträng:

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  |
+-----------------+-----------------+---------+

Nollargument

Skickar null till UNHEX() resulterar i null :

SELECT UNHEX(null);

Resultat:

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

Inga argument godkänns

Anropar UNHEX() utan att skicka några argument resulterar i ett fel:

SELECT UNHEX();

Resultat:

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

  1. Hur man ändrar rotlösenordet för MySQL eller MariaDB i Linux

  2. SQL Server Management Studio (SSMS)

  3. Kan jag kommaavgränsa flera rader i en kolumn?

  4. NUMTOYMINTERVAL() Funktion i Oracle