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;