我通常不使用MSSQL,并且想知道如何匹配存储为字符串的字段值的md5值。
在mysql中我会使用
SELECT * FROM table WHERE md5(field) = $md5value
但我在mssql中找不到一个简单的解决方案。
现在我循环所有帖子并检查循环中匹配的值,但这是慢的方法。
如何在MSSQL中解决这个问题?
我无法在表格中添加额外字段并存储md5值,因此我必须以这种方式进行检查。
在php中使用odbc驱动程序。
答案 0 :(得分:1)
MSSQL不使用MD5(),而是使用名为HASHBYTES的函数:
SELECT * FROM table WHERE HASHBYTES('MD5',field) = $md5value
此功能附加' 0x'但是要哈希,所以要完全检查它,你需要:
SELECT * FROM table WHERE HASHBYTES('MD5',field) = '0x' . $md5value
编辑:在PHP中,它看起来像这样:
$query = "SELECT * FROM table WHERE HASHBYTES('MD5',field) = \"0x" . $md5value . '"';