MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak działa UNHEX() w MariaDB

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'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa ABS() w MariaDB

  2. Połączenia HAProxy a połączenia MySQL — co powinieneś wiedzieć

  3. Główny menedżer wysokiej dostępności (MHA) uległ awarii! Co mam teraz zrobić?

  4. Zrozumienie indeksów w MySQL:część trzecia

  5. Jak działa MOD() w MariaDB