在SQL中,定义字符串时前导“ X”是什么意思?

时间:2019-01-10 05:17:40

标签: mysql sql

我正在一个项目中,在该项目中,我得到了一个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');

1 个答案:

答案 0 :(得分:5)

从MySQL documentation

  

十六进制文字值使用X'val'或0xval表示法编写,其中val包含十六进制数字(0..9,A..F)。数字和任何前导X的字母大小写都没有关系。前导0x区分大小写,不能写为0x。

因此,您仅查看十六进制字符串文字。根据表定义,您可以看到这些字符串以二进制形式存储在BLOB列中。