メインコンテンツまでスキップ

CHAR_LENGTH

説明

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

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

エイリアス

  • CHARACTER_LENGTH

構文

CHAR_LENGTH(<str>)

パラメータ

ParameterDescription
<str>文字長を計算する文字列。型: VARCHAR

戻り値

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

特殊なケース:

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

  1. 英語文字
SELECT CHAR_LENGTH('hello');
+----------------------+
| char_length('hello') |
+----------------------+
| 5 |
+----------------------+
  1. 中国語文字(各中国語文字は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 |
+----------+----------+