SQL道場 文字列関数 CHAR_LENGTH/CHARACTER_LENGTH関数

SQLで文字列の長さを得るCHAR_LENGTH/CHARACTER_LENGTH関数について記載しています。

対応データベース:MySQL PostgreSQL ANSI

CHAR_LENGTH/CHARACTER_LENGTH関数の文法

SELECT CHAR_LENGTH(文字列) FROM テーブル
SELECT CHARACTER_LENGTH(文字列) FROM テーブル
引数文字列文字列型
返値数値型 文字列の長さが戻ります。

CHAR_LENGTH関数は文字列の長さを返します。CHAR_LENGTHはCHARACTER_LENGTHの省略形で、どちらも同じ値を返します。MySQLのCHAR_LENGTHは漢字1文字を2バイトとして数えます。(マルチバイト文字の場合も 1 文字は 1 つとしてカウントされます。)

PostgreSQLのCHAR_LENGTHは文字列が固定長の場合は定義した文字数が戻され、可変長の場合は漢字1文字も半角英数文字も1文字として数えます。

文字列のバイト数を得たい場合はOCTET_LENGTH関数を使用します。

MySQLの実行例

引数に指定した文字列の長さを文字数単位で取得するサンプル

/* MySQL 文字列の長さを求めるサンプル */
SELECT STR,CHAR_LENGTH(STR) FROM testdb.WORK;
CHAR_LENGTH/CHARACTER_LENGTH関数サンプル実行結果