MYSQL中的sha256函数返回64位字符串。
mysql> select sha2('a',256);
+------------------------------------------------------------------+
| sha2('a',256) |
+------------------------------------------------------------------+
| ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb |
+------------------------------------------------------------------+
clickhouse中SHA256函数默认返回的是个32位的字符串,与MYSQL中的sha256函数返回结果并不相同。
SELECT
length(SHA256('a')) AS len,
SHA256('a') AS hex_str;
┌─len─┬─sha256_str──┐
│ 32 │ ʗ1M|Nr │
└────┴──────────┘
如果想得到与MYSQL中的sha256函数相同的结果,需要做个转换。
SELECT lower(hex(SHA256('a'))) AS sha256_str;
┌─sha256_str───────────────────────────────────────────────────────┐
│ ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb │
└───────────────────────────────────────────────────────────────┘