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 | +-------------+