Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana Fungsi UNHEX() Bekerja di MySQL

Di MySQL, UNHEX() fungsi memungkinkan Anda untuk "menghapus" string di MySQL. Dengan kata lain, ini memungkinkan Anda untuk mengonversi nilai heksadesimal menjadi string yang dapat dibaca manusia.

Secara khusus, fungsi menafsirkan setiap pasangan karakter dalam argumen sebagai angka heksadesimal dan mengubahnya menjadi byte yang diwakili oleh angka tersebut. Nilai yang dikembalikan adalah string biner.

Sintaks

Sintaksnya seperti ini:

UNHEX(str)

Dimana str adalah string yang akan di-unhex.

Contoh 1 – Penggunaan Dasar

Berikut ini contoh dasarnya:

SELECT UNHEX('436F636F6E75742070616C6D') AS Unhexed;

Hasil:

+--------------+
| Unhexed      |
+--------------+
| Coconut palm |
+--------------+

Jadi saya memberikan nilai hex sebagai argumen, dan fungsinya menghapus nilai itu dan mengembalikan hasilnya (yang merupakan string biner).

Contoh 2 – Mengonversi String ke Heksadesimal

Kita juga dapat melakukan kebalikannya dengan menggunakan HEX() fungsi untuk mengubah string menjadi nilai heksadesimal:

SELECT HEX('Coconut palm') AS Hexed;

Hasil:

+--------------------------+
| Hexed                    |
+--------------------------+
| 436F636F6E75742070616C6D |
+--------------------------+

Oleh karena itu, kita dapat menumpuk satu fungsi di dalam fungsi lainnya, dan kita hanya akan mendapatkan kembali argumen kita:

SELECT 
  UNHEX(HEX('Coconut palm')) AS 'Result 1',
  HEX(UNHEX('436F636F6E75742070616C6D')) AS 'Result 2';

Hasil:

+--------------+--------------------------+
| Result 1     | Result 2                 |
+--------------+--------------------------+
| Coconut palm | 436F636F6E75742070616C6D |
+--------------+--------------------------+

Contoh 3 – Karakter Heksadesimal Tidak Valid

Argumen harus berisi karakter heksadesimal yang valid. Jika salah satu karakter bukan karakter hex yang valid, hasilnya adalah NULL :

SELECT 
  UNHEX(' '),
  UNHEX('_xyz');

Hasil:

+------------+---------------+
| UNHEX(' ') | UNHEX('_xyz') |
+------------+---------------+
| NULL       | NULL          |
+------------+---------------+

Contoh 4 – Argumen Numerik

UNHEX() fungsi tidak bekerja pada nilai numerik yang setara dengan heksadesimal.

Ini contoh yang saya maksud:

SELECT 
  HEX(1234),
  UNHEX('4D2');

Hasil:

+-----------+--------------+
| HEX(1234) | UNHEX('4D2') |
+-----------+--------------+
| 4D2       | ?            |
+-----------+--------------+

Cara lain untuk menunjukkan ini adalah:

SELECT UNHEX(HEX(1234));

Hasil:

+------------------+
| UNHEX(HEX(1234)) |
+------------------+
| ?                |
+------------------+

Jadi ini menunjukkan kepada kita bahwa ekuivalen heksadesimal dari 1234 adalah 4H2 , dan UNHEX() fungsi tidak dapat menangani nilai tersebut.

Dalam kasus seperti itu, Anda dapat menggunakan CONV() fungsi sebagai gantinya:

SELECT 
  HEX(1234),
  CONV('4D2', 16, 10),
  CONV(HEX(1234), 16, 10);

Hasil:

+-----------+---------------------+-------------------------+
| HEX(1234) | CONV('4D2', 16, 10) | CONV(HEX(1234), 16, 10) |
+-----------+---------------------+-------------------------+
| 4D2       | 1234                | 1234                    |
+-----------+---------------------+-------------------------+

Dalam contoh ini, kami menggunakan CONV() untuk mengonversi nilai dari basis-16 (heksadesimal) ke basis-10 (desimal).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memiliki SQL Dinamis di Prosedur Tersimpan MySQL

  2. Cara Menghitung Persentase Pertumbuhan Minggu Ke Minggu di MySQL

  3. MySQL di 2018:Apa yang ada di 8.0 dan Pengamatan Lainnya

  4. MySQL vs MySQLi saat menggunakan PHP

  5. MySQL – Perbaiki – Kesalahan – Kata Sandi Anda Tidak Memenuhi Persyaratan Kebijakan Saat Ini