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