Обычно я не работаю с MSSQL и задаюсь вопросом, как я могу сопоставить значение md5 значения поля, хранящегося в виде строки.
В mysql я бы использовал
SELECT * FROM table WHERE md5(field) = $md5value
но я не могу найти простое решение для этого в mssql.
Теперь я петлю все сообщения и проверяю соответствие совпадающего значения в цикле, но это способ замедлить работу.
Как это решить в MSSQL?
У меня нет возможности добавить дополнительное поле в таблицу и сохранить значение md5, поэтому я должен выполнить проверку таким образом.
Использование драйвера odbc в php.
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 . '"';