Что в SQL означает начальный «X» при определении строки? - PullRequest
0 голосов
/ 10 января 2019

Я работаю над проектом, в котором мне дали файл SQL для создания базы данных и некоторые примеры значений. Одно из полей (HTMLContent) имеет тип blob, а значения, вставляемые в него, имеют вид X'<long-string-of-numbers-and-letters>'.

Что означает начальная буква «Х»?

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 голосов
/ 10 января 2019

Из документации MySQL :

Шестнадцатеричные литеральные значения записываются с использованием обозначений X'val 'или 0xval, где val содержит шестнадцатеричные цифры (0..9, A..F). Буква из цифр и любого начального X не имеет значения. Начальный 0x чувствителен к регистру и не может быть записан как 0X.

Итак, вы просто смотрите на шестнадцатеричные строковые литералы. На основании определения таблицы вы можете видеть, что эти строки хранятся в двоичном виде в столбце BLOB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...