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

3 Cara untuk "Unhex" sebuah String di MySQL

MySQL menyertakan berbagai fungsi yang dapat membantu Anda saat bekerja dengan nilai heksadesimal. Salah satu fungsi yang paling jelas adalah HEX() fungsi, yang memungkinkan Anda untuk mengonversi string menjadi ekuivalen heksadesimalnya.

Namun, mungkin ada saatnya Anda ingin mengonversi string heksadesimal kembali ke string yang lebih mudah dibaca. Tentang itulah artikel ini.

Berikut adalah tiga cara untuk "unhex" string di MySQL:

  • UNHEX() fungsi
  • X notasi heksadesimal
  • 0x notasi

Berikut adalah contoh dari masing-masing metode tersebut.

Fungsi UNHEX()

Ini adalah fungsi string yang dibuat khusus untuk "menghapus heksadesimal" string heksadesimal.

Contoh:

SELECT UNHEX('4361747320616E6420646F6773');

Hasil:

+-------------------------------------+
| UNHEX('4361747320616E6420646F6773') |
+-------------------------------------+
| Cats and dogs                       |
+-------------------------------------+

Cara UNHEX() berfungsi adalah menafsirkan setiap pasangan karakter dalam argumen sebagai angka heksadesimal dan mengubahnya menjadi byte yang diwakili oleh angka tersebut. Nilai yang dikembalikan adalah string biner.

Notasi X

Cara alternatif untuk meng-unhex string adalah dengan menggunakan X notasi.

Contoh:

SELECT X'4361747320616E6420646F6773';

Hasil:

+-------------------------------+
| X'4361747320616E6420646F6773' |
+-------------------------------+
| Cats and dogs                 |
+-------------------------------+

X notasi didasarkan pada SQL standar. Notasi ini tidak peka huruf besar/kecil, jadi tidak masalah apakah Anda menggunakan X huruf besar atau huruf kecil. Ini berbeda dengan 0x notasi, yang peka huruf besar/kecil.

Perhatikan bahwa X notasi membutuhkan jumlah digit genap. Jika Anda memiliki angka ganjil, Anda dapat mengisinya dengan angka nol di depan.

Notasi 0x

Dan cara ketiga untuk meng-unhex string adalah dengan menggunakan 0x notasi.

Contoh:

SELECT 0x4361747320616E6420646F6773;

Hasil:

+------------------------------+
| 0x4361747320616E6420646F6773 |
+------------------------------+
| Cats and dogs                |
+------------------------------+

0x notasi didasarkan pada ODBC, yang string heksadesimal sering digunakan untuk memasok nilai untuk kolom BLOB. Seperti disebutkan, 0x notasi peka huruf besar/kecil, jadi tidak akan berfungsi jika Anda menggunakan X huruf besar .

0x notasi bekerja dengan jumlah digit ganjil, tetapi hanya karena notasi itu akan menafsirkan bilangan ganjil apa pun sebagai memiliki nol di depan (sehingga membuatnya genap).

Unhex Nomor

Perhatikan bahwa dia HEX() fungsi tidak bekerja pada angka. Untuk melakukannya, gunakan CONV() sebagai gantinya (lihat Cara Menghapus Hex Nomor di MySQL).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolom Tidak Diketahui Di Mana Klausa

  2. Dapatkan tahun ini, bulan ini dan hari ini di MySQL

  3. Pelajari cara membuat cadangan database MySQL Anda

  4. Nilai default tidak valid untuk 'dateAdded'

  5. MySQL 'Order By' - menyortir alfanumerik dengan benar