为什么SELECT UNHEX(1)
会回复笑容?
我期待1
。
这里可能会发生什么?
答案 0 :(得分:2)
答案 1 :(得分:0)
文件明确指出:
对于数字参数N,UNHEX()不执行HEX(N)的反转。使用CONV(HEX(N),16,10)代替。请参阅HEX()的说明。
它的作用如下,仍然是根据文件:
对于字符串参数str,UNHEX(str)解释每对 参数中的字符作为十六进制数并将其转换为 由数字表示的字节。返回值是二进制 字符串。
所以在我们的例子中,它将返回1(十六进制)的二进制表示,它只是00000001
。以下取决于您的安装。在我的作品中,我认为默认的字符集是ascii或utf8,所以根据this table,这是“标题的开始”控制字符。由于它是一个控制字符,你的命令行或浏览器可能会有一些显示它的问题,这可以解释微笑。
如果我尝试SELECT UNHEX(21)
,我会根据this table
!
经过一些测试,如果你给函数赋予数值,il将为一个字符串,并将两位数字分成两位数,并将它们转换为二进制字符串。