首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询返回十六进制字符串,而不是预期的字母数字文本;RE: mysql8+默认选项-二进制即十六进制

查询返回十六进制字符串,而不是预期的字母数字文本;RE: mysql8+默认选项-二进制即十六进制
EN

Stack Overflow用户
提问于 2022-01-31 00:50:26
回答 1查看 97关注 0票数 1

这在一台机器上如预期的那样工作:

代码语言:javascript
复制
mysql> SELECT `LengthSHOULD` FROM `LengthAndGrowing` WHERE `LenTmpPltzPerKEY`='InCompletedsLengthCheck_0';
+--------------+
| LengthSHOULD |
+--------------+
| A,B,C,D      |
+--------------+

但是在另一台计算机上,同样的代码给了我这样的信息:

代码语言:javascript
复制
mysql> SELECT `LengthSHOULD` FROM `LengthAndGrowing` WHERE `LenTmpPltzPerKEY`='InCompletedsLengthCheck_0';
+----------------------------+
| LengthSHOULD               |
+----------------------------+
| 0x412C422C432C44           |
+----------------------------+

0x412C42C432C44xx422C432C44?

我已经走了这么远..。询问mysql在内部使用的是什么:

代码语言:javascript
复制
mysql> SELECT 
    ->    column_name, 
    ->    character_set_name, 
    ->    collation_name 
    -> FROM information_schema.columns 
    -> WHERE table_name = 'LengthAndGrowing';
+------------------+--------------------+--------------------+
| COLUMN_NAME      | CHARACTER_SET_NAME | COLLATION_NAME     |
+------------------+--------------------+--------------------+
| LenTmpPltzPerKEY | utf8mb4            | utf8mb4_0900_ai_ci |
| LengthSHOULD     | NULL               | NULL               |
| GrowingPains     | utf8mb4            | utf8mb4_0900_ai_ci |
| AccordianString  | NULL               | NULL               |
| TimePLEASE       | utf8mb4            | utf8mb4_0900_ai_ci |
+------------------+--------------------+--------------------+

我该怎么做才能解除这一切?

从dcolazin的答案提示来看,是的,这是一种选择--跳过二进制作为十六进制。

显然是mysql 8.x+;在默认情况下,在bash和运行在mysql的mysql中,查询返回的二进制数据只会在屏幕上以十六进制的形式出现。

最后,我在dir ~/一个新的.my.cnf文件下,在mysql和mysqld组下创建,并且为了更好地度量服务器-客户机添加了选项跳过-二进制作为十六进制有用的资源: MySQL文档:https://dev.mysql.com/doc/refman/8.0/en/option-files.html#option-file-order中的“选项文件语法”部分。

代码语言:javascript
复制
[mysql]
skip-binary-as-hex

[mysqld]
skip-binary-as-hex

[server-client]
skip-binary-as-hex

重新启动mysqld系统

mysql -u这个拖欠用户-p

再来一次好数据。

DBAABA、DBAABB、DBAABC、DBAABD、DBAACA、DBAACB、DBAACC、DBAACD、DBAADA、DBA亚行、DBAADC、DBAADD、

EN

回答 1

Stack Overflow用户

发布于 2022-01-31 01:19:22

0x412C422C432C44正是A,B,C,D的十六进制表示形式,您可以尝试使用UNHEX()函数。无论如何,它可能是--binary-as-hex的选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70920251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档