Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我试图从我的数据库中返回一个值的 MD5 编码字符串,但它只返回一个空白结果(不是 null,只是空白)。我试过运行这个查询并得到相同的结果:
SELECT MD5('test');
我尝试重新启动 MySQL 服务器、MySQL Workbench 等。但得到相同的结果。如果我尝试在不同的数据库/服务器上运行相同的命令,它会很好地返回哈希字符串。
我究竟做错了什么?是否有我在意外中禁用的设置?
在 MySQL v5.5.3 之前,MD5()返回二进制字符串。
MD5()
默认情况下,MySQL Workbench 不显示二进制字符串(避免意外误解);但是可以在输出网格中显示二进制字符串值:查看 > 编辑 > 首选项 > SQL 编辑器 >BINARY/VARBINARY视为非二进制字符串。
BINARY/VARBINARY
或者,升级您的 MySQL 服务器或将结果转码为非二进制字符集:
SELECT CONVERT(MD5('test') USING utf8)