MariaDB CRC32C() 函数使用指南
在 MariaDB 中,CRC32C()
是一个内置的数字函数,它用于计算循环冗余校验值并返回一个 32 位无符号值。
与 CRC32()
不同, CRC32C()
使用卡斯塔尼奥利多项式。
MariaDB CRC32C()
语法
这里是 MariaDB CRC32C()
函数的语法:
CRC32C([par,]str)
参数
str
- 必需的。 一个用于计算的字符串。非字符串参数将被视为字符串。
par
- 可选的。 一个计算循环冗余校验值。可选择参数用于分段计算校验和。
如果您不提供参数或提供了错误数量的参数,MariaDB 将报告一个错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function ‘CRC32C’
返回值
MariaDB CRC32C()
函数用于计算循环冗余校验值并返回一个 32 位无符号值。
如果任一参数为 NULL
,CRC32C()
函数将会返回 NULL
。
MariaDB CRC32C()
示例
基本示例
要计算 Hello
的循环冗余校验值,请使用以下语句:
SELECT CRC32C('Hello');
输出:
+-----------------+
| CRC32C('Hello') |
+-----------------+
| 2178485787 |
+-----------------+
区分大小写
不同大小写的字符串的循环冗余校验值是不同的:
SELECT
CRC32C('Hello'),
CRC32C('HELLO');
输出:
+-----------------+-----------------+
| CRC32C('Hello') | CRC32C('HELLO') |
+-----------------+-----------------+
| 2178485787 | 3901656152 |
+-----------------+-----------------+
非字符串参数
MariaDB CRC32C()
的将把非字符串参数视为字符串:
SELECT
CRC32C('1234'),
CRC32C(1234);
输出:
+----------------+--------------+
| CRC32C('1234') | CRC32C(1234) |
+----------------+--------------+
| 4131058926 | 4131058926 |
+----------------+--------------+
分段计算
通常,CRC 是分段计算的。为了促进这一点,MariaDB 10.8.0 引入了一个 可选参数:CRC32C('HelloWorld') = CRC32C(CRC32C('Hello'),'World')
:
SELECT
CRC32C('HelloWorld'),
CRC32C(CRC32C('Hello'), 'World');
输出:
+----------------------+----------------------------------+
| CRC32C('HelloWorld') | CRC32C(CRC32C('Hello'), 'World') |
+----------------------+----------------------------------+
| 1407507230 | 1407507230 |
+----------------------+----------------------------------+
在这个示例中,我们将 HelloWorld
分为 Hello
和 World
,然后分段计算。 您可以根据自己的需求任意分段,结果是相同,如下:
SELECT CRC32C(CRC32C('He'), 'lloWorld');
输出:
+----------------------------------+
| CRC32C(CRC32C('He'), 'lloWorld') |
+----------------------------------+
| 1407507230 |
+----------------------------------+
结论
在 MariaDB 中,CRC32C()
是一个内置的数字函数,它用于计算循环冗余校验值并返回一个 32 位无符号值。