W MariaDB, UNHEX() jest wbudowaną funkcją ciągu, która wykonuje odwrotną operację HEX() funkcja.
Natomiast HEX() funkcja zwraca szesnastkową reprezentację danego ciągu, UNHEX() funkcja zwraca ciąg reprezentujący daną wartość szesnastkową.
W szczególności UNHEX() interpretuje każdą parę cyfr szesnastkowych w swoim argumencie jako liczbę, a następnie konwertuje ją na znak reprezentowany przez liczbę.
Wynik jest zwracany jako ciąg binarny.
Składnia
Składnia wygląda tak:
UNHEX(str)
Gdzie str jest wartością szesnastkową, która ma być „nieheksowana”.
Przykład
Oto podstawowy przykład:
SELECT UNHEX('61'); Wynik:
+-------------+
| UNHEX('61') |
+-------------+
| a |
+-------------+
Szesnastkowa reprezentacja małej litery a to 61 , a więc przekazując 61 do UNHEX() funkcji, otrzymujemy małą literę a .
Oto przykład, który zawiera kilka dodatkowych wartości szesnastkowych:
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'); Wynik (przy użyciu wyjścia pionowego):
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 W porównaniu z HEX()
Oto przykład, który zagnieżdża HEX() wewnątrz UNHEX() aby zwrócić oryginalny ciąg:
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay')); Wynik:
+--------------------+-------------------------+
| HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) |
+--------------------+-------------------------+
| 486F6D6572204A6179 | Homer Jay |
+--------------------+-------------------------+
Pamiętaj jednak, że UNHEX() zwraca swój wynik jako ciąg binarny:
SELECT
COLLATION('Homer Jay') AS "Literal",
COLLATION(HEX('Homer Jay')) AS "HEX()",
COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()"; Wynik:
+-----------------+-----------------+---------+ | Literal | HEX() | UNHEX() | +-----------------+-----------------+---------+ | utf8_general_ci | utf8_general_ci | binary | +-----------------+-----------------+---------+
Argumenty zerowe
Przekazywanie null do UNHEX() wyniki w null :
SELECT UNHEX(null); Wynik:
+-------------+ | UNHEX(null) | +-------------+ | NULL | +-------------+
Przekazywanie żadnych argumentów
Wywołanie UNHEX() bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT UNHEX(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNHEX'