sql >> Databáze >  >> RDS >> MariaDB

Jak UNHEX() funguje v MariaDB

V MariaDB, UNHEX() je vestavěná řetězcová funkce, která provádí inverzní operaci k HEX() funkce.

Zatímco HEX() Funkce vrací hexadecimální reprezentaci daného řetězce, UNHEX() funkce vrací řetězcovou reprezentaci dané hexadecimální hodnoty.

Konkrétně UNHEX() interpretuje každou dvojici hexadecimálních číslic ve svém argumentu jako číslo a poté je převede na znak reprezentovaný číslem.

Výsledek je vrácen jako binární řetězec.

Syntaxe

Syntaxe vypadá takto:

UNHEX(str) 

Kde str je hexadecimální hodnota, která má být „nehexedována“.

Příklad

Zde je základní příklad:

SELECT UNHEX('61'); 

Výsledek:

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

Hexadecimální reprezentace malého písmene a je 61 , a tak předáním 61 do UNHEX() funkce, dostaneme malé písmeno a .

Zde je příklad, který prochází několika dalšími hexadecimálními hodnotami:

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

Výsledek (při použití vertikálního výstupu):

 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'):Kočka UNHEX('446F67'):DogUNHEX('50617773202620436C617773'):Tlapky a drápy UNHEX('):5Abra26166'):5Abra26166 

Ve srovnání s HEX()

Zde je příklad, který vnoří HEX() uvnitř UNHEX() vrátit původní řetězec:

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

Výsledek:

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

Mějte však na paměti, že UNHEX() vrátí výsledek jako binární řetězec:

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

Výsledek:

+-----------------+-----------------+---------+ | Doslovný | HEX() | UNHEX() |+-----------------+-----------------+---------- +| utf8_general_ci | utf8_general_ci | binární |+-----------------+-----------------+---------+ 

Nulové argumenty

Předávání null na UNHEX() výsledkem je null :

SELECT UNHEX(null); 

Výsledek:

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

Nepředávání žádných argumentů

Volání UNHEX() bez předání jakýchkoli argumentů dojde k chybě:

SELECT UNHEX(); 

Výsledek:

CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'UNHEX'

  1. Jak vkládat data přímo z Excelu do databáze Oracle

  2. Jak vložit soubory BLOB a CLOB do MySQL?

  3. NULL vs. `nekonečno` v typech rozsahů PostgreSQL

  4. Jak spustíte SQL z bash skriptu?