長さ
説明
LENGTH関数は文字列のバイト長(バイト単位)を返します。この関数はUTF-8エンコーディングにおいて文字列が占めるバイト数を計算するもので、文字数ではありません。
CHAR_LENGTHとの違いにご注意ください:
LENGTH()はバイト数を返しますCHAR_LENGTH()とCHARACTER_LENGTH()は文字数を返します- ASCII文字の場合、バイト数と文字数は同じです
- マルチバイト文字(中国語、絵文字など)の場合、バイト数は通常文字数より大きくなります
エイリアス
OCTET_LENGTH()
構文
LENGTH(<str>)
パラメータ
| Parameter | デスクリプション |
|---|---|
<str> | バイト長を計算する必要がある文字列。型: VARCHAR |
Return Value
INT型を返し、文字列のバイト長を表します。
特殊なケース:
- パラメータがNULLの場合、NULLを返す
- 空文字列は0を返す
- 結果はUTF-8エンコーディングでのバイト数
Examples
- ASCII文字(バイト数 = 文字数)
SELECT LENGTH('abc'), CHAR_LENGTH('abc');
+---------------+--------------------+
| LENGTH('abc') | CHAR_LENGTH('abc') |
+---------------+--------------------+
| 3 | 3 |
+---------------+--------------------+
- 中国語文字(バイト数 > 文字数)
SELECT LENGTH('中国'), CHAR_LENGTH('中国');
+------------------+---------------------+
| LENGTH('中国') | CHAR_LENGTH('中国') |
+------------------+---------------------+
| 6 | 2 |
+------------------+---------------------+
- NULL値の処理
SELECT LENGTH(NULL);
+--------------+
| LENGTH(NULL) |
+--------------+
| NULL |
+--------------+