ホームページ >データベース >mysql チュートリアル >mysqlで長さを調べる関数は何ですか?

mysqlで長さを調べる関数は何ですか?

青灯夜游
青灯夜游オリジナル
2020-10-07 14:07:403589ブラウズ

長さを見つけるための Mysql の関数は length() 関数と char_length() 関数です; length() 関数は文字列の長さをバイト単位で返すことができ、char_length() 関数は長さを返すことができます文字列の文字数単位での文字列の長さ。

mysqlで長さを調べる関数は何ですか?

MySQL の char_length 関数と length 関数はどちらも文字列の長さを返すことができます

mysql> select length('MySQL'), char_length('MySQL');
+-----------------+----------------------+
| length('MySQL') | char_length('MySQL') |
+-----------------+----------------------+
|               5 |                    5 |
+-----------------+----------------------+
1 row in set (0.01 sec)

2 つの関数関数:

  • LENGTH() 文字列の長さをバイト単位で返します。

  • CHAR_LENGTH() 文字列の長さを文字数で返します。

上記の例から判断すると、「MySQL」には合計 5 文字が含まれており、各文字は 1 バイトを占める必要があります。

しかし、中国語は異なり、通常、中国語 1 文字は 2 ~ 3 バイトを占めます。例:

GBK 文字セット エンコーディング:

select char_length(‘中国’); // 2个字符
select length(‘中国’); // 4个字节,一个汉字2个字节
select bit_length(‘中国’); // 32位。4*8 = 32

UTF8 文字セット エンコーディング:

select char_length(‘中国’);// 2个字符
select length(‘中国’); // 6个字节,一个汉字3个字节
select bit_length(‘中国’); // 48位。6*8 = 48

summary

char_length(str )

  • 長さの単位は文字で、マルチバイト文字も 1 文字としてカウントされます

  • 中国語かどうかは関係ありません文字、数字、または文字 1 文字

length(str)

  • utf8 エンコードでは、1 つの中国語文字は 3 文字としてカウントされ、1 文字は 3 文字としてカウントされます。数字または文字は 1 文字としてカウントされます。

  • 他のエンコードでは、1 つの中国語文字は 2 文字としてカウントされ、1 つの数字または文字は 1 文字としてカウントされます。

推奨チュートリアル: mysql ビデオ チュートリアル

以上がmysqlで長さを調べる関数は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。