这是我在此处发布的上一期的后续内容。
我创建了一个测试表:
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。谢谢。