メインコンテンツまでスキップ
バージョン: 26.x

CHAR_LENGTH

デスクリプション

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

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

Alias

  • CHARACTER_LENGTH

Syntax

CHAR_LENGTH(<str>)

パラメータ

パラメータ説明
<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 |
+----------+----------+