将十六进制值插入MySql

问题描述 投票:0回答:4

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

mysql binary hex
4个回答
42
投票

您可以使用

UNHEX()
函数将具有十六进制对的十六进制字符串转换为二进制,并使用
HEX()
进行相反的操作。

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

SELECT HEX(col) FROM tbl

12
投票

或者你甚至可以这样做:

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

请参阅this了解更多信息。


3
投票

已经提到了 Hex() 和 Unhex() 函数,但我还想权衡一下替代模式。

前后使用琴弦的情况如何?如果您能够在最后一刻之前避免转换,那就非常优惠。这样您就不会冒出问题的风险,或者忘记从数据库中提取的对象是否已经被转换。


2
投票

这是我经常参考的一篇很棒的博客文章,以提醒自己正确处理十六进制值和二进制字段,并列出了一些性能影响。

https://planet.mysql.com/entry/?id=17498

© www.soinside.com 2019 - 2024. All rights reserved.