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

'MySQL' に含まれている文字は、文字の数とバイト数が同じで 1 なので CHAR_LENGTH() と LENGTH() は 5 を返しています。

1 byte は 8 bit なので、BIT_LENGTH() は 40 を返しています。


'データベース' という文字列の長さを取得すると次のようになります。

SET @str = 'データベース';

SELECT 	CHAR_LENGTH(@str),
		LENGTH(@str),
        BIT_LENGTH(@str);

[実行結果]

MySQL で文字列の長さを取得する 2

'データベース' の文字数は 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 で文字列の長さを取得する方法についてご説明しました。

© 2024 MySQL 入門