MySQL で文字列の長さを取得する
ここでは MySQL で文字列の長さを取得する方法についてご説明します。
MySQL の文字列の長さを取得する関数
MySQL で文字列の長さを取得するには CHAR_LENGTH()、LENGTH()、BIT_LENGTH() という組み込み関数を使って取得することができます。
どれも引数として文字列を受け取ります。
CHAR_LENGTH() は文字列の文字数を返し、LENGTH() は文字のバイト数を返し、BIT_LENGTH() は文字のビット数を返します。
例えば、'MySQL' という文字列の長さを取得すると次のようになります。
SET @str = 'MySQL';
SELECT CHAR_LENGTH(@str),
LENGTH(@str),
BIT_LENGTH(@str);
[実行結果]
'MySQL' に含まれている文字は、文字の数とバイト数が同じで 1 なので CHAR_LENGTH() と LENGTH() は 5 を返しています。
1 byte は 8 bit なので、BIT_LENGTH() は 40 を返しています。
'データベース' という文字列の長さを取得すると次のようになります。
SET @str = 'データベース';
SELECT CHAR_LENGTH(@str),
LENGTH(@str),
BIT_LENGTH(@str);
[実行結果]
'データベース' の文字数は 6 なので、CHAR_LENGTH() は 6 を返しています。
'データベース' のバイト数は UTF-8 Unicode で 1 文字 3 byte * 6 なので LENGTH() は 18 を返しています。
1 byte は 8 bit なので、BIT_LENGTH() は 18 * 8 = 144 を返しています。
もう一度まとめると、文字列の文字数を取得したい時は CHAR_LENGTH() を使います。
文字列のバイト数、ビット数を取得したい時は LENGTH() と BIT_LENGTH() を使います。
LENGTH() と BIT_LENGTH() は文字によっては CHARACTER SET が違うと、返るバイト・ビット数が違います。
以上、MySQL で文字列の長さを取得する方法についてご説明しました。