我正在运行在谷歌搜索时发现的以下示例代码:
SELECT MD5(RAND())
但是,令我惊讶的是,MD5返回的是纯数字,而不是十六进制数字。使用CONV(MD5(RAND()), 10, 16)
似乎可以解决我的问题,但是MySQL文档指出MD5函数应该返回已经为十六进制的字符串。
难道我做错了什么?
EDIT2:这个问题似乎仅存在于phpMyAdmin,而不是MySQL的命令行版本。
编辑:我的MySQL版本:
mysql --version mysql Ver 14.14 Distrib 5.1.41, for debian-linux-gnu (x86_64) using readline 6.1
MD5值示例:
6338666264663132376461666163313063656535633666616266396530613335
另外,CONV返回一个非常短的字符串,例如:
B9
该字符串通常是一位数字,而到目前为止,我得到的最长是5位数字。
没关系,我知道了。
不知何故,phpMyAdmin将结果读取为二进制。似乎有一个选项“显示二进制内容为十六进制”,默认情况下已选中。
似乎此“显示为十六进制”选项引起了问题。取消选中它似乎可以解决问题。