MySQLでは、CRC32()
関数は巡回冗長検査値を計算し、32ビットの符号なし値を返します。
CRCは、巡回冗長検査の略です。 。 CRCは、生データの偶発的な変更を検出するためにデジタルネットワークやストレージデバイスで一般的に使用されるエラー検出コードです(ただし、必ずしも悪意のある変更や意図的な変更を防ぐわけではありません)。
構文
構文は次のようになります:
CRC32(expr)
expr
文字列です。引数が文字列でない場合、MySQLはそれをとにかく1つとして扱います(そうしないと、エラーが発生します)。引数がNULL
の場合 、次にNULL
返されます。
例1-基本的な使用法
CRC32()
が何であるかを示す基本的な例を次に示します。 サンプル文字列を返します。
SELECT CRC32('Bob');
結果:
+--------------+ | CRC32('Bob') | +--------------+ | 3448174496 | +--------------+
例2–大文字と小文字の区別
使用するケースに応じて、異なる結果が得られます。
SELECT CRC32('Bob'), CRC32('bob'), CRC32('BOB');
結果:
+--------------+--------------+--------------+ | CRC32('Bob') | CRC32('bob') | CRC32('BOB') | +--------------+--------------+--------------+ | 3448174496 | 4123767104 | 1668084682 | +--------------+--------------+--------------+
例3–数字
前述のように、引数は実際には文字列でなくても文字列として扱われます。これは、関数を2回呼び出す例です。初めて電話をかけるときは、番号(123
)を渡します )、2回目に文字列を渡す('123'
。
SELECT CRC32(123), CRC32('123');
結果:
+------------+--------------+ | CRC32(123) | CRC32('123') | +------------+--------------+ | 2286445522 | 2286445522 | +------------+--------------+
ご覧のとおり、両方の値で同じ結果が得られます。
例4–NULL値
ヌル値はNULL
を返します 。
SELECT CRC32(NULL);
結果:
+-------------+ | CRC32(NULL) | +-------------+ | NULL | +-------------+