に最終更新
CHAR_LENGTH
説明
CHAR_LENGTH 関数は、文字列の文字数(バイト数ではなく)を計算します。中国語の文字などのマルチバイト文字も、文字単位で数えます。
現在は UTF-8 エンコーディングのみをサポートします。
別名
- CHARACTER_LENGTH
構文
CHAR_LENGTH(<str>)
パラメータ
| パラメータ | 説明 |
|---|---|
<str> | 文字数を計算する文字列。型: VARCHAR |
戻り値
文字列の文字数を表す INT 型の値を返します。
特殊なケース:
- パラメータが NULL の場合は NULL を返します
- 空文字列の場合は 0 を返します
- マルチバイトの UTF-8 文字は、それぞれ 1 文字として数えます
例
- 英語の文字
SELECT CHAR_LENGTH('hello');
+----------------------+
| char_length('hello') |
+----------------------+
| 5 |
+----------------------+
- 中国語の文字(各文字を一文字として数えます)
SELECT CHAR_LENGTH('中国');
+----------------------+
| char_length('中国') |
+----------------------+
| 2 |
+----------------------+
- NULL 値の処理
SELECT CHAR_LENGTH(NULL);
+--------------------+
| char_length(NULL) |
+--------------------+
| NULL |
+--------------------+
- LENGTH 関数との比較(LENGTH はバイト数を返します)
SELECT CHAR_LENGTH('中国') AS char_len, LENGTH('中国') AS byte_len;
+----------+----------+
| char_len | byte_len |
+----------+----------+
| 2 | 6 |
+----------+----------+