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

Di MySQL, fungsi CHAR() berfungsi aneh

Sebelum MySQL 8.0.19, masalah yang Anda hadapi tidak ada. binary-as-hex opsi klien diaktifkan secara default dari MySQL 8.0.19.

Jalankan status atau \s di MySQL. Anda akan melihat baris tentang data biner. Jika disebutkan sebagai heksadesimal, output dari fungsi seperti CHAR() dan UNHEX() akan ditampilkan sebagai heksadesimal, bukan teks biasa.

Untuk menghindari ini, Anda dapat menggunakan klausa USING charset dari CHAR() .

mysql> SELECT CHAR(97);
+--------------------+
| CHAR(97)           |
+--------------------+
| 0x61               |
+--------------------+
1 row in set (0.00 sec)

mysql> SELECT CHAR(97 USING utf8mb4);
+------------------------+
| CHAR(97 USING utf8mb4) |
+------------------------+
| a                      |
+------------------------+
1 row in set (0.00 sec)

Atau, Anda dapat menggunakan --skip-binary-as-hex . Langkah-langkah yang harus diikuti di Windows adalah:

  1. Buka Prompt Perintah.

  2. Ubah direktori. Dalam kasus saya perintahnya adalah:

    cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
    
  3. Jalankan

    mysql -u root -p --skip-binary-as-hex
    
  4. Masukkan kata sandi.

  5. Sekarang, output dari CHAR() fungsinya akan seperti yang Anda harapkan.

Catatan :--skip-binary-as-hex metode berfungsi sampai Anda keluar dari MySQL. Anda perlu menggunakan --skip-binary-as-hex setiap kali Anda membuka MySQL sehingga nilai heksadesimal tidak akan ditampilkan.

Anda dapat merujuk tautan ini untuk informasi lebih lanjut:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara melihat waktu kueri presisi tinggi di baris perintah mysql?

  2. Kinerja tampilan MySql

  3. Tidak dapat memasukkan karakter Yunani dengan benar ke dalam database mysql

  4. Levenshtein:MySQL + PHP

  5. Dapatkan baris terbaru dengan grup oleh dan Laravel