MySQL CONCAT(“string”,longtext)产生十六进制字符串

时间:2013-09-17 02:53:15

标签: mysql string hex concat

尝试使用LONGTEXT类型的列连接字符串时,我遇到了一个奇怪的十六进制字符串结果。

查询如下:

SELECT concat("abc",t.LONGTEXT_VALUE,"cde") FROM mytable t

61626354657374696e67636465

十六进制字符串61626354657374696e67636465是正确的值,只是十六进制格式。

列本身的SELECT将返回普通字符串:

SELECT t.LONGTEXT_VALUE FROM mytable t

Testing

2 个答案:

答案 0 :(得分:18)

你尝试过铸造吗?通常对我来说效果很好。例如:

SELECT CONCAT("abc",CAST(t.LONGTEXT_VALUE AS CHAR),"cde") FROM mytable t

答案 1 :(得分:2)

当您在没有强制转换的情况下连接数字时,它将返回为blob。据我所知,这是MySQL的预期功能,因为它在this bug thread中报告,他们关闭它并确认它返回了Blob。