这在一台机器上如预期的那样工作:
mysql> SELECT `LengthSHOULD` FROM `LengthAndGrowing` WHERE `LenTmpPltzPerKEY`='InCompletedsLengthCheck_0';
+--------------+
| LengthSHOULD |
+--------------+
| A,B,C,D |
+--------------+但是在另一台计算机上,同样的代码给了我这样的信息:
mysql> SELECT `LengthSHOULD` FROM `LengthAndGrowing` WHERE `LenTmpPltzPerKEY`='InCompletedsLengthCheck_0';
+----------------------------+
| LengthSHOULD |
+----------------------------+
| 0x412C422C432C44 |
+----------------------------+0x412C42C432C44xx422C432C44?
我已经走了这么远..。询问mysql在内部使用的是什么:
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中的“选项文件语法”部分。
[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、
发布于 2022-01-31 01:19:22
0x412C422C432C44正是A,B,C,D的十六进制表示形式,您可以尝试使用UNHEX()函数。无论如何,它可能是--binary-as-hex的选项。
https://stackoverflow.com/questions/70920251
复制相似问题