将十六进制值插入MySql

Tim*_*Tim 23 mysql binary hex

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

Bal*_*usC 32

您可以使用UNHEX()函数将带有十六进制对的十六进制串转换为二进制,并HEX()执行相反的操作.

INSERT INTO tbl (col) VALUES (UNHEX('4D2AFF'))
Run Code Online (Sandbox Code Playgroud)

SELECT HEX(col) FROM tbl
Run Code Online (Sandbox Code Playgroud)


naw*_*fal 7

或者你甚至可以这样做:

INSERT INTO tbl (col) VALUES (X'4D2AFF')
Run Code Online (Sandbox Code Playgroud)

为更多的一些信息.

  • 请注意,即使在MySQL 5.6中,X''表示法在参考mysql客户端中也有长度限制,而UNHEX()则没有(出现)。我不知道X的限制是多少,因为它没有正式记录,但是在尝试插入BLOB时遇到了它。使用X''字面量,mysql客户端使用足够长的十六进制序列抛出语法错误,而相同序列的UNHEX()则没有。 (3认同)