ホームページ  >  記事  >  データベース  >  MySQL BIT_LENGTH() 関数はマルチバイト安全ですか?

MySQL BIT_LENGTH() 関数はマルチバイト安全ですか?

WBOY
WBOY転載
2023-09-16 20:21:06826ブラウズ

MySQL BIT_LENGTH() 函数是否是多字节安全的?

LENGTH() 関数と同様、MySQL BIT_LENGTH() 関数はマルチバイト安全な関数ではありません。ご存知のとおり、CHAR_LENGTH() や CHARACTER_LENGTH() などのマルチバイト セーフ関数と BIT_LENGTH() 関数の結果の違いは、ほとんどの文字が 2 バイトでエンコードされるか、UTF に関連する Unicode に特に関係します。 -8 (バイト数は異なります)。これは、以下の例で示されています。-

Example

mysql> Select BIT_LENGTH('tutorialspoint');
+------------------------------+
| BIT_LENGTH('tutorialspoint') |
+------------------------------+
| 112                          |
+------------------------------+
1 row in set (0.00 sec)

上記の結果セットは、文字列「tutorialspoint」のビット長がまだ Unicode 文字に変換されていないため、112 であることを示しています。次のクエリは、これを Unicode 文字 -

mysql> SET @A = CONVERT('tutorialspoint' USING ucs2);
Query OK, 0 rows affected (0.02 sec)

に変換します。文字記号を Unicode に変換した後、結果は 224 ではなく 112 になります。これは、以下に示すように、Unicode では 1 文字が 2 文字を占有するためです。 -

rreeee

以上がMySQL BIT_LENGTH() 関数はマルチバイト安全ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。