我想計算一個聚合列中所有值的校驗和。創建一個列的聚合校驗和
換句話說,我想要做的
md5(group_concat(some_column))
一些等效採用這種方法的問題是:
- 這是低效的。在將其傳遞給md5函數之前,它必須將該列的所有值作爲一個字符串連接起來。
- group_concat的最大長度爲1024,之後所有其他內容都將被截斷。
(如果你想知道,你能確保值的CONCAT是一致的順序,但是,因爲無論你相信與否GROUP_CONCAT()接受由內這條命令,如group_concat(some_column order by some_column)
)我提供了非標準的按位集合函數BIT_AND(),BIT_OR()和BIT_XOR(),我認爲這對於這個問題是有用的。在這種情況下,列是數字,但我很想知道是否有方法使用字符串列來完成此操作。
對於這個特定的應用程序,校驗和不必是安全的。
SUM()`在這裏使用是不正確的,因爲兩個不同的校驗和可以很容易地總結到相同的值 – 2013-04-15 19:11:21