У меня есть таблица с столбцом VARBINARY. Мне нужно вставить строку, такую как "4D2AFF", которая представляет шестнадцатеричные значения 0x4D, 0x2A и 0xFF соответственно. Как я могу построить это утверждение?
Вставить шестнадцатеричные значения в MySql
Ответ 1
Вы можете использовать UNHEX()
функцию для преобразования шестнадцатеричной строки с шестнадцатеричными парами в двоичную и HEX()
, чтобы сделать наоборот.
т.е.
INSERT INTO tbl (col) VALUES (UNHEX('4D2AFF'))
и
SELECT HEX(col) FROM tbl
Ответ 2
Или вы можете это сделать:
INSERT INTO tbl (col) VALUES (X'4D2AFF')
Подробнее см. .
Ответ 3
Функции Hex() и Unhex() уже упоминались, но я хотел бы также взвешивать альтернативный шаблон.
Как вы используете строки до и после? Если вы можете избежать коверсии до последней возможной минуты, это очень важно. Таким образом, вы не рискуете, что что-то пойдет не так, или забудете, был ли объект, который вы извлекли из БД, уже преобразован или нет.
Ответ 4
Здесь большое сообщение в блоге, на которое я всегда ссылаюсь, чтобы напомнить себе о правильной обработке шестнадцатеричных значений и двоичных полей и изложил некоторые последствия для производительности.
http://www.xaprb.com/blog/2009/02/12/5-ways-to-make-hexadecimal-identifiers-perform-better-on-mysql/