メインコンテンツまでスキップ
に最終更新

CHAR_LENGTH

説明​

CHAR_LENGTH 関数は、文字列の文字数(バイト数ではなく)を計算します。中国語の文字などのマルチバイト文字も、文字単位で数えます。

現在は UTF-8 エンコーディングのみをサポートします。

別名​

  • CHARACTER_LENGTH

構文​

CHAR_LENGTH(<str>)

パラメータ​

パラメータ説明
<str>文字数を計算する文字列。型: VARCHAR

戻り値​

文字列の文字数を表す INT 型の値を返します。

特殊なケース:

  • パラメータが NULL の場合は NULL を返します
  • 空文字列の場合は 0 を返します
  • マルチバイトの UTF-8 文字は、それぞれ 1 文字として数えます

例​

  1. 英語の文字
SELECT CHAR_LENGTH('hello');
+----------------------+
| char_length('hello') |
+----------------------+
| 5 |
+----------------------+
  1. 中国語の文字(各文字を一文字として数えます)
SELECT CHAR_LENGTH('中国');
+----------------------+
| char_length('中国') |
+----------------------+
| 2 |
+----------------------+
  1. NULL 値の処理
SELECT CHAR_LENGTH(NULL);
+--------------------+
| char_length(NULL) |
+--------------------+
| NULL |
+--------------------+
  1. LENGTH 関数との比較(LENGTH はバイト数を返します)
SELECT CHAR_LENGTH('中国') AS char_len, LENGTH('中国') AS byte_len;
+----------+----------+
| char_len | byte_len |
+----------+----------+
| 2 | 6 |
+----------+----------+