我有一个带有VARBINARY列的表。我需要插入一个字符串,如'4D2AFF',分别代表十六进制值0x4D,0x2A和0xFF。我该如何构建这个陈述?
答案 0 :(得分:31)
您可以使用UNHEX()
函数将十六进制对的十六进制字符串转换为二进制和HEX()
,以反过来。
即
INSERT INTO tbl (col) VALUES (UNHEX('4D2AFF'))
和
SELECT HEX(col) FROM tbl
答案 1 :(得分:7)
答案 2 :(得分:3)
已经提到了Hex()和Unhex()函数,但我还想在另一种模式中权衡。
你之前和之后如何使用字符串?如果你能在最后一分钟之前避免转变,那就非常优惠了。这样你就不会冒出错的风险,或者忘记你从DB中提取的对象是否已被转换。
答案 3 :(得分:2)
这是一篇很棒的博客文章,我总是提醒自己正确处理十六进制值和二进制字段,并列出了一些性能影响。
http://www.xaprb.com/blog/2009/02/12/5-ways-to-make-hexadecimal-identifiers-perform-better-on-mysql/