Trong MySQL, CRC32()
hàm tính toán giá trị kiểm tra dư thừa theo chu kỳ và trả về giá trị không dấu 32 bit.
CRC là viết tắt của Kiểm tra dự phòng theo chu kỳ . CRC là mã phát hiện lỗi thường được sử dụng trong các mạng kỹ thuật số và thiết bị lưu trữ để phát hiện những thay đổi ngẫu nhiên đối với dữ liệu thô (mặc dù, nó không nhất thiết phải đề phòng những thay đổi có chủ ý hoặc độc hại).
Cú pháp
Cú pháp như sau:
CRC32 (expr)
Ở đâu expr
là một chuỗi. Nếu đối số không phải là một chuỗi, MySQL vẫn coi nó là một chuỗi (hoặc là một chuỗi hoặc bạn sẽ gặp lỗi). Nếu đối số là NULL
, rồi đến NULL
được trả lại.
Ví dụ 1 - Cách sử dụng cơ bản
Dưới đây là một ví dụ cơ bản để chứng minh những gì CRC32()
trả về cho một chuỗi mẫu.
CHỌN CRC32 ('Bob');
Kết quả:
+ -------------- + | CRC32 ('Bob') | + -------------- + | 3448174496 | + -------------- +
Ví dụ 2 - Phân biệt chữ hoa chữ thường
Bạn sẽ nhận được một kết quả khác, tùy thuộc vào trường hợp bạn sử dụng.
CHỌN CRC32 ('Bob'), CRC32 ('bob'), CRC32 ('BOB');
Kết quả:
+ -------------- + -------------- + -------------- + | CRC32 ('Bob') | CRC32 ('bob') | CRC32 ('BOB') | + -------------- + -------------- + ------------ - + | 3448174496 | 4123767104 | 1668084682 | + -------------- + -------------- + -------------- +Ví dụ 3 - Số
Như đã đề cập, đối số được coi là một chuỗi ngay cả khi nó thực sự không phải là một chuỗi. Đây là một ví dụ mà tôi gọi hàm hai lần. Lần đầu tiên tôi gọi nó là một số (
123
), và lần thứ hai tôi chuyển vào một chuỗi ('123'
).CHỌN CRC32 (123), CRC32 ('123');Kết quả:
+ ------------ + -------------- + | CRC32 (123) | CRC32 ('123') | + ------------ + -------------- + | 2286445522 | 2286445522 | + ------------ + -------------- +Như bạn có thể thấy, chúng tôi nhận được cùng một kết quả cho cả hai giá trị.
Ví dụ 4 - Giá trị NULL
Giá trị rỗng trả về
NULL
.CHỌN CRC32 (NULL);Kết quả:
+ ------------- + | CRC32 (NULL) | + ------------- + | KHÔNG | + ------------- +