gpt4 book ai didi

mysql - 在 MySQL 中,CHAR() 函数的工作很奇怪

转载 作者:行者123 更新时间:2023-12-04 12:56:49 25 4
gpt4 key购买 nike

当我编写 CHAR() 函数时。
例如:

mysql> select char(97);
+--------------------+
| char(97) |
+--------------------+
| 0x61 |
+--------------------+
我知道这是不对的。
mysql> select char(97);
+--------------------+
| char(97) |
+--------------------+
| a |
+--------------------+
也许这是正确的情况,对吧?
你能解释一下我该如何解决这个问题吗?

最佳答案

在 MySQL 8.0.19 之前,您面临的问题不存在。 binary-as-hex从 MySQL 8.0.19 开始默认启用客户端选项。
运行 status\s在 MySQL 中。您会注意到关于二进制数据的一行。如果它是十六进制的,则输出类似 CHAR() 的函数和 UNHEX()将显示为十六进制而不是普通文本。
为了避免这种情况,您可以使用 CHAR() 的 USING 字符集子句。 .

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 时都使用这种方法,这样就不会显示十六进制值。
    您可以引用这些链接以获取更多信息:
  • 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
  • 关于mysql - 在 MySQL 中,CHAR() 函数的工作很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65614116/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com