CHAR_LENGTH
デスクリプション
CHAR_LENGTH関数は、文字列内の文字数(バイト数ではなく)を計算します。マルチバイト文字(中国語文字など)の場合、文字数を返します。
現在はUTF-8エンコーディングのみをサポートしています。
Alias
- CHARACTER_LENGTH
Syntax
CHAR_LENGTH(<str>)
パラメータ
| パラメータ | 説明 |
|---|---|
<str> | 文字長を計算する文字列。型: VARCHAR |
戻り値
INT型を返し、文字列内の文字数を表します。
特別なケース:
- パラメータがNULLの場合、NULLを返す
- 空文字列は0を返す
- マルチバイトUTF-8文字はそれぞれ1文字としてカウントされる
例
- 英語文字
SELECT CHAR_LENGTH('hello');
+----------------------+
| char_length('hello') |
+----------------------+
| 5 |
+----------------------+
- 中国語文字(各中国語文字は1文字としてカウントされます)
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 |
+----------+----------+