MariaDBでは、CHARACTER_LENGTH()
は、指定された文字列引数の長さを文字数で返す組み込みの文字列関数です。
CHARACTER_LENGTH()
実際にはCHAR_LENGTH()
の同義語です 、どちらでも使用できます。
構文
構文は次のようになります:
CHARACTER_LENGTH(str)
str
長さが返される文字列です。
例
基本的な例は次のとおりです。
SELECT CHARACTER_LENGTH('Cat');
結果:
+-------------------------+ | CHARACTER_LENGTH('Cat') | +-------------------------+ | 3 | +-------------------------+
この場合、文字列は3文字の長さであったため、3
を取得しました。 。
非文字列
引数が文字列でない場合は、文字列に変換されます。
数字を使用する別の例を次に示します。
SELECT CHARACTER_LENGTH(1234);
結果:
+------------------------+ | CHARACTER_LENGTH(1234) | +------------------------+ | 4 | +------------------------+
CHAR_LENGTH()
との比較
前述のように、CHARACTER_LENGTH()
CHAR_LENGTH()
の同義語です 。これは、CHAR_LENGTH()
との比較です。 :
SELECT
CHARACTER_LENGTH(1234),
CHAR_LENGTH(1234);
結果:
+------------------------+-------------------+ | CHARACTER_LENGTH(1234) | CHAR_LENGTH(1234) | +------------------------+-------------------+ | 4 | 4 | +------------------------+-------------------+
マルチバイト文字
CHARACTER_LENGTH()
関数は、使用するバイト数に関係なく、各文字を1文字としてカウントします。したがって、2、3、または4バイトを使用する文字は、引き続き1文字としてカウントされます。
これは、LENGTH()
などの関数とは対照的です。 、バイト数を返します(Oracleモードの場合を除きます。この場合、CHARACTER_LENGTH()
と同じように機能します。 –文字数を返します)。また、BIT_LENGTH()
のような関数とは対照的です。 文字列のビット数を返します。
これらの機能を比較する例を次に示します。
SELECT
CHARACTER_LENGTH('อ'),
LENGTH('อ'),
BIT_LENGTH('อ');
結果:
+-------------------------+---------------+-------------------+ | CHARACTER_LENGTH('อ') | LENGTH('อ') | BIT_LENGTH('อ') | +-------------------------+---------------+-------------------+ | 1 | 3 | 24 | +-------------------------+---------------+-------------------+
このタイ文字(อ
)3バイトを使用します。 CHARACTER_LENGTH()
まだ1文字なので、1を返します。 LENGTH()
およびBIT_LENGTH()
一方、それぞれバイト数とビット数を返します。
この例は、デフォルトのSQL_MODE
を使用して行われました。 。前述のように、Oracleモードの場合は、LENGTH()
CHARACTER_LENGTH()
のように動作します 1
を返しました 。
ヌル引数
null
を渡す null
を返します :
SELECT CHARACTER_LENGTH(null);
結果:
+------------------------+ | CHARACTER_LENGTH(null) | +------------------------+ | NULL | +------------------------+
引数がありません
CHARACTER_LENGTH()
を呼び出す 引数を渡さないとエラーが発生します:
SELECT CHARACTER_LENGTH();
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CHARACTER_LENGTH'