Tóm tắt
Dùng hàm CRC32() kết hợp SUM() để tạo checksum tổng hợp cho toàn bộ cột – hữu ích cho so sánh dữ liệu, phát hiện thay đổi.
Cú pháp
SELECT SUM(CRC32(cot_can_checksum)) AS aggregate_checksum
FROM ten_bang;
Ví dụ
1. Tạo bảng
CREATE TABLE CRC32Demo (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserId VARCHAR(20)
);
2. Dữ liệu
INSERT INTO CRC32Demo (UserId) VALUES ('USER-1'), ('USER-123'), ('USER-333');
3. Tính checksum
SELECT SUM(CRC32(UserId)) FROM CRC32Demo;
4. Kết quả
+---------------------+
| sum(crc32(UserId)) |
+---------------------+
| 3142885447 |
+---------------------+
Đặc điểm CRC32
- Trả về số nguyên không dấu 32-bit (0 đến 4,294,967,295).
- Nhanh, đơn giản, nhưng có khả năng va chạm (collision) – không dùng cho bảo mật.
- Thứ tự hàng ảnh hưởng kết quả SUM (vì cộng dồn). Dùng
ORDER BYnếu cần nhất quán.
So sánh với CHECKSUM TABLE
CHECKSUM TABLE ten_bang;
-- Trả về checksum cấp bảng (cấu trúc + dữ liệu), thay đổi khi ALTER TABLE.
SUM(CRC32()) linh hoạt hơn: checksum một cột, nhiều cột, có điều kiện WHERE.