MySQL 8.0.19より前は、直面している問題は存在しませんでした。 binary-as-hex
クライアントオプションは、MySQL8.0.19からデフォルトで有効になっています。
status
を実行します または\s
MySQLで。バイナリデータに関する行に気付くでしょう。 16進数として言及されている場合、CHAR()
などの関数の出力 およびUNHEX()
通常のテキストではなく16進数で表示されます。
これを回避するには、CHAR()
のUSINGcharset句を使用できます。 。
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)
または、--skip-binary-as-hex
を使用できます 。 Windowsで実行する手順は次のとおりです。
-
コマンドプロンプトを開きます。
-
ディレクトリを変更します。私の場合、コマンドは次のとおりです。
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
-
実行
mysql -u root -p --skip-binary-as-hex
-
パスワードを入力してください。
-
ここで、
CHAR()
の出力 機能は期待どおりになります。
注 :--skip-binary-as-hex
このメソッドは、MySQLを終了するまで機能します。 --skip-binary-as-hex
を使用する必要があります MySQLを開くたびに、16進値が表示されないようにする方法。
詳細については、次のリンクを参照してください。
- https://dev.mysql。 com / doc / refman / 8.0 / en / string-functions.html#function_char
- https: //dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html#option_mysql_binary-as-hex