我有一個查詢 MySQL 以獲取除主鍵之外的表列的哈希值。
到目前為止,我需要為 SQL Server 做同樣的事情,我已經嘗試了 hashbytes,但結果看起來不正確。
我用來為除主鍵之外的所有列創建哈希值的 MySQL 查詢是這樣的
SELECT MD5(CONCAT(ISNULL(COLUMN1,''),ISNULL(COLUMN2,''),ISNULL(COLUMN3,''))) as HASHVALUE, PRIMARYKEY FROM TABLE_NAME1
到目前為止,我用 SQL 嘗試過的是這個..
SELECT HashBytes('MD5', COLUMN1) AS HASHVALUE , PRIMARYKEY FROM TABLE_NAME1
來自 mysql 的結果 >
|HASHVALUE | Primary |
|:------------------------------- |:-------:|
|7a16284f87ab262f0047f4c0b4e50b2c | 0 |
|d41b398c603086da409e87ee35824cf6 | 2 |
|c0e7b9b9c29703282a9f192a4c0aead9 | 6 |
|ce13595c356a0a373140f3fda1eb5fb3 | 7 |
來自 SQL 的結果 >
| HASHVALUE | PRIMARY |
| ---------- | ------- |
|? $t J |OlU | 1 |
uj5u.com熱心網友回復:
SQL Server 結果仍然是二進制的。您必須轉換為字串:
LOWER(CONVERT(varchar(32), HashBytes('MD5', COLUMN1), 2))
在這里查看它以證明您得到相同的結果,即使在組合列之后:
https://dbfiddle.uk/?rdbms=sqlserver_2019&fiddle=b11c422fe9236043ba5edbeb7d97043d
您可以使用鏈接頁面頂部的選單在 MySql 和 SQL Server 之間切換。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/467827.html
標籤:sql服务器
