我试图从我的数据库返回一个MD5编码的字符串值,但它只返回一个空白结果(不为空,只是空白)。 我试过运行这个查询并获得相同的结果:
SELECT MD5('test');
我已经尝试重启MySQL服务器,MySQL Workbench等。但是得到了相同的结果。 如果我尝试在不同的数据库/服务器上运行相同的命令,它会很好地返回哈希字符串。
我做错了什么?我是否有意外禁用的设置?
答案 0 :(得分:9)
在MySQL v5.5.3之前,MD5()
返回了二进制字符串。
默认情况下,MySQL Workbench不显示二进制字符串(以避免意外误解);但是可以在输出网格中显示二进制字符串值:View>编辑>偏好> SQL编辑器>将BINARY/VARBINARY
视为非二进制字符串。
或者,升级MySQL服务器或将结果转码为非二进制字符集:
SELECT CONVERT(MD5('test') USING utf8)