Это результат предыдущего выпуска, который я опубликовал here.MySQL SELECT против столбца varbinary
Я создал тестовую таблицу:
CREATE TABLE `my_test_table` (
`record_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`col1` BINARY(20) NULL DEFAULT NULL,
`col2` CHAR(40) NULL DEFAULT NULL,
PRIMARY KEY (`record_id`)
)
Тогда выбежала заявление:
INSERT INTO my_test_table (col1, col2) VALUES(sha1('test'), sha1('test'));
Данные выглядит ...
1 0x6139346138666535636362313962613631633463 a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
Я не знаю, как я могу выбрать против VARBINARY. Я могу выбрать против CHAR как:
SELECT * FROM my_test_table WHERE col2 = sha1('test');
Я попытался
SELECT * FROM my_test_table WHERE col1 = hex(sha1('test'));
и другие варианты, но не могу найти решение (если есть один). Мне нужно проверить, есть ли значение в базе данных, прежде чем я разрешу новую вставку. Я смотрел VARBINARY и BINARY на основе предыдущих предложений. Благодарю.
Почему столбец типа двоичный? –