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'