В MariaDB, UNHEX()
е вградена функция низ, която изпълнява обратната операция на HEX()
функция.
Като има предвид, че HEX()
функцията връща шестнадесетично представяне на даден низ, UNHEX()
функцията връща низовото представяне на дадена шестнадесетична стойност.
По-конкретно, UNHEX()
интерпретира всяка двойка шестнадесетични цифри в своя аргумент като число и след това я преобразува в символа, представен от числото.
Резултатът се връща като двоичен низ.
Синтаксис
Синтаксисът е така:
UNHEX(str)
Където str
е шестнадесетичната стойност, която да бъде „нехексирана“.
Пример
Ето един основен пример:
SELECT UNHEX('61');
Резултат:
+------------+| UNHEX('61') |+-----------+| a |+------------+
Шестнадесетичното представяне на малката буква a
е 61
, и така чрез подаване на 61
към UNHEX()
функция, получаваме малката буква a
.
Ето пример, който преминава през още няколко шестнадесетични стойности:
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');
Резултат (с помощта на вертикален изход):
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'):Котка UNHEX('446F67'):DogUNHEX('50617773202620436C617773'):Лапи и нокти UNHEX16'5A:Zebra62
В сравнение с HEX()
Ето един пример, който влага HEX()
вътре в UNHEX()
за да върнете оригиналния низ:
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
Резултат:
+--------------------+------------------- +| HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) |+-------------------+----------------- --------+| 486F6D6572204A6179 | Хоумър Джей |+--------------------+------------------------ +
Все пак, имайте предвид, че UNHEX()
връща резултата си като двоичен низ:
SELECT
COLLATION('Homer Jay') AS "Literal",
COLLATION(HEX('Homer Jay')) AS "HEX()",
COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()";
Резултат:
+-----------------+----------------+--------+ | Буквално | HEX() | UNHEX() |+-----------------+----------------+-------- +| utf8_general_ci | utf8_general_ci | двоичен |+-----------------+----------------+--------+предварително>Нулеви аргументи
Предаването на
null
къмUNHEX()
води доnull
:SELECT UNHEX(null);
Резултат:
+------------+| UNHEX(нула) |+------------+| NULL |+------------+Не се предават аргументи
Извикване на
UNHEX()
без подаване на аргументи води до грешка:SELECT UNHEX();
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой параметри в извикването на естествена функция „UNHEX“