将十六进制值插入MySql

时间:2010-06-27 02:48:57

标签: mysql binary hex

我有一个带有VARBINARY列的表。我需要插入一个字符串,如'4D2AFF',分别代表十六进制值0x4D,0x2A和0xFF。我该如何构建这个陈述?

4 个答案:

答案 0 :(得分:31)

您可以使用UNHEX()函数将十六进制对的十六进制字符串转换为二进制和HEX(),以反过来。

INSERT INTO tbl (col) VALUES (UNHEX('4D2AFF'))

SELECT HEX(col) FROM tbl

答案 1 :(得分:7)

或者你甚至可以这样做:

INSERT INTO tbl (col) VALUES (X'4D2AFF')

有关详情,请参阅this

答案 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/