這是我之前發佈的一個後續問題here。MySQL SELECT against varbinary column
我創建了一個測試表:
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。謝謝。
爲什麼是二進制類型的列? –