>我正在做一个项目,在那里我得到了一个SQL文件来生成数据库和一些示例值。 其中一个字段 ( HTMLContent
) 是类型 blob
并且插入其中的值采用 X'<long-string-of-numbers-and-letters>'
的形式。
前导"X"表示什么?
CREATE TABLE `advertDOM` (
`id` int(11) NOT NULL,
`HTMLContent` blob COMMENT 'DOM data to be displayed on screen',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `advertDOM` (`id`, `HTMLContent`)
VALUES
(1,X'3C646976206964203D2022636F6E74656E742220636C617373203D202266756C6C73637265656E2D6C616E647363617065223E0A20203C646976206964203D202277312D636F6E7461696E6572223E0A202020207B77317D0A20203C2F6469763E0A3C2F6469763E'),
(2,X'3C646976206964203D2022636F6E74656E742220636C617373203D202274776F2D77696E646F772D6C616E647363617065223E0A20203C646976206964203D202277312D636F6E7461696E6572223E0A202020207B77317D0A20203C2F6469763E0A20203C646976206964203D202277322D636F6E7461696E6572223E0A202020207B77327D0A20203C2F6469763E0A3C2F6469763E'),
(3,X'3C646976206964203D2022636F6E74656E742220636C617373203D202266756C6C73637265656E2D706F727472616974223E0A20203C646976206964203D202277312D636F6E7461696E6572223E0A202020207B77317D0A20203C2F6469763E0A3C2F6469763E'),
(4,X'3C646976206964203D2022636F6E74656E742220636C617373203D202274776F2D77696E646F772D706F727472616974223E0A20203C646976206964203D202277312D636F6E7461696E6572223E0A202020207B77317D0A20203C2F6469763E0A20203C646976206964203D202277322D636F6E7461696E6572223E0A202020207B77327D0A20203C2F6469763E0A3C2F6469763E');
来自 MySQL 文档:
十六进制文本值使用 X'val' 或 0xval 表示法编写,其中 val 包含十六进制数字 (0..9, A..F). 数字和任何前导 X 的字母大小写无关紧要。前导 0x 区分大小写,不能写为 0X。
因此,您只是在查看十六进制字符串文本。 根据表定义,可以看到这些字符串以二进制形式存储在 BLOB 列中。