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

長さ

説明

LENGTH関数は文字列のバイト長(バイト単位)を返します。この関数はUTF-8エンコーディングにおいて文字列が占めるバイト数を計算するもので、文字数ではありません。

CHAR_LENGTHとの違いにご注意ください:

  • LENGTH()はバイト数を返します
  • CHAR_LENGTH()CHARACTER_LENGTH()は文字数を返します
  • ASCII文字の場合、バイト数と文字数は同じです
  • マルチバイト文字(中国語、絵文字など)の場合、バイト数は通常文字数より大きくなります

エイリアス

  • OCTET_LENGTH()

構文

LENGTH(<str>)

パラメータ

Parameterデスクリプション
<str>バイト長を計算する必要がある文字列。型: VARCHAR

Return Value

INT型を返し、文字列のバイト長を表します。

特殊なケース:

  • パラメータがNULLの場合、NULLを返す
  • 空文字列は0を返す
  • 結果はUTF-8エンコーディングでのバイト数

Examples

  1. ASCII文字(バイト数 = 文字数)
SELECT LENGTH('abc'), CHAR_LENGTH('abc');
+---------------+--------------------+
| LENGTH('abc') | CHAR_LENGTH('abc') |
+---------------+--------------------+
| 3 | 3 |
+---------------+--------------------+
  1. 中国語文字(バイト数 > 文字数)
SELECT LENGTH('中国'), CHAR_LENGTH('中国');
+------------------+---------------------+
| LENGTH('中国') | CHAR_LENGTH('中国') |
+------------------+---------------------+
| 6 | 2 |
+------------------+---------------------+
  1. NULL値の処理
SELECT LENGTH(NULL);
+--------------+
| LENGTH(NULL) |
+--------------+
| NULL |
+--------------+