mssql md5(tablefield)= md5value?

时间:2015-02-02 10:33:03

标签: php sql-server md5

我通常不使用MSSQL,并且想知道如何匹配存储为字符串的字段值的md5值。

在mysql中我会使用

SELECT * FROM table WHERE md5(field) = $md5value 

但我在mssql中找不到一个简单的解决方案。

现在我循环所有帖子并检查循环中匹配的值,但这是慢的方法。

如何在MSSQL中解决这个问题?

我无法在表格中添加额外字段并存储md5值,因此我必须以这种方式进行检查。

在php中使用odbc驱动程序。

1 个答案:

答案 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 . '"';