sql >> Database >  >> RDS >> MariaDB

Hoe UNHEX() werkt in MariaDB

In MariaDB, UNHEX() is een ingebouwde tekenreeksfunctie die de inverse bewerking van de HEX() . uitvoert functie.

Terwijl de HEX() functie retourneert een hexadecimale representatie van een gegeven string, de UNHEX() functie retourneert de tekenreeksrepresentatie van een gegeven hexadecimale waarde.

In het bijzonder UNHEX() interpreteert elk paar hexadecimale cijfers in zijn argument als een getal en converteert het vervolgens naar het teken dat door het getal wordt vertegenwoordigd.

Het resultaat wordt geretourneerd als een binaire tekenreeks.

Syntaxis

De syntaxis gaat als volgt:

UNHEX(str)

Waar str is de hexadecimale waarde die "unhexed" moet zijn.

Voorbeeld

Hier is een eenvoudig voorbeeld:

SELECT UNHEX('61');

Resultaat:

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

De hexadecimale weergave van de kleine letter a is 61 , en dus door 61 . door te geven naar de UNHEX() functie krijgen we de kleine letter a .

Hier is een voorbeeld dat nog een paar hexadecimale waarden doorloopt:

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

Resultaat (met verticale uitvoer):

                      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

Vergeleken met HEX()

Hier is een voorbeeld dat HEX() nestt binnen UNHEX() om de originele string terug te geven:

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

Resultaat:

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

Houd er echter rekening mee dat UNHEX() geeft het resultaat terug als een binaire tekenreeks:

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

Resultaat:

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

Nullargumenten

Doorgeven van null naar UNHEX() resulteert in null :

SELECT UNHEX(null);

Resultaat:

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

Geen argumenten doorgeven

Aanroepen van UNHEX() zonder het doorgeven van argumenten resulteert in een fout:

SELECT UNHEX();

Resultaat:

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

  1. Query schrijven voor meerdere tabellen in php

  2. Filter op uitvoerclausule sql

  3. Sql:verschil tussen twee datums

  4. Vooraf gebouwde Oracle-database voor leren en testen met Oracle Developer VM