W MySQL funkcja CRC32()
funkcja oblicza wartość cyklicznej kontroli nadmiarowości i zwraca 32-bitową wartość bez znaku.
CRC oznacza Cykliczną kontrolę nadmiarową . CRC to kod wykrywający błędy powszechnie używany w sieciach cyfrowych i urządzeniach pamięci masowej do wykrywania przypadkowych zmian w nieprzetworzonych danych (chociaż niekoniecznie chroni przed złośliwymi lub celowymi zmianami).
Składnia
Składnia wygląda tak:
CRC32(expr)
Gdzie expr
jest ciągiem. Jeśli argument nie jest łańcuchem, MySQL i tak traktuje go jako jeden (albo tak, albo otrzymasz błąd). Jeśli argumentem jest NULL
, a następnie NULL
jest zwracany.
Przykład 1 – Podstawowe użycie
Oto podstawowy przykład pokazujący, co CRC32()
zwraca przykładowy ciąg.
SELECT CRC32('Bob');
Wynik:
+--------------+ | CRC32('Bob') | +--------------+ | 3448174496 | +--------------+
Przykład 2 – Rozróżnianie wielkości liter
Otrzymasz inny wynik, w zależności od przypadku, którego używasz.
SELECT CRC32('Bob'), CRC32('bob'), CRC32('BOB');
Wynik:
+--------------+--------------+--------------+ | CRC32('Bob') | CRC32('bob') | CRC32('BOB') | +--------------+--------------+--------------+ | 3448174496 | 4123767104 | 1668084682 | +--------------+--------------+--------------+
Przykład 3 – Liczby
Jak wspomniano, argument jest traktowany jako łańcuch, nawet jeśli w rzeczywistości nie jest to łańcuch. Oto przykład, w którym dwukrotnie wywołuję funkcję. Gdy dzwonię po raz pierwszy, podaję numer (123
), a za drugim razem przekazuję ciąg ('123'
).
SELECT CRC32(123), CRC32('123');
Wynik:
+------------+--------------+ | CRC32(123) | CRC32('123') | +------------+--------------+ | 2286445522 | 2286445522 | +------------+--------------+
Jak widać, otrzymujemy ten sam wynik dla obu wartości.
Przykład 4 – wartości NULL
Wartości null zwracają NULL
.
SELECT CRC32(NULL);
Wynik:
+-------------+ | CRC32(NULL) | +-------------+ | NULL | +-------------+