MySQL開発サイトにあるように-
BIT_LENGTH(文字列) -
文字列 str の長さをビット単位で返します。
長さ(文字列) -
文字列 str の長さをバイト単位で返します。マルチバイト文字は複数バイトとしてカウントされます。
いくつかのサンプル結果 -
SELECT BIT_LENGTH(_utf8mb4 "Hello") AS output;
+--------+
| output |
+--------+
| 40 |
+--------+
SELECT LENGTH(_utf8mb4 "Hello") AS output;
+--------+
| output |
+--------+
| 5 |
+--------+
したがって、最初の結果はビット単位で、2 番目はバイト単位で、8 ビット = 1 バイトです。
したがって、result1 = 8 * result2;
また、
SELECT BIT_LENGTH(_ucs2 "Hello") AS output;
+--------+
| output |
+--------+
| 48 |
+--------+
SELECT LENGTH(_ucs2 "Hello") AS output;
+--------+
| output |
+--------+
| 6 |
+--------+
ここでも、result1 = 8 * result2;
したがって、2 つの関数の違いは単純に、BIT_LENGTH(str) は結果をビット単位で返し、LENGTH(str) は結果をバイト単位で返すことです。
またはそれ以上の違いはありますか?