Разница между функциями BIT_LENGTH(str) и LENGTH(str) в MySQL

#mysql #byte #bit #string-function

Вопрос:

Как указано на сайте разработчика MySQL —

ДЛИНА БИТА(str) —

Возвращает длину строки str в битах.

ДЛИНА(str) —

Возвращает длину строки str, измеряемую в байтах. Многобайтовый символ считается несколькими байтами.

Некоторые примеры результатов —

 SELECT BIT_LENGTH(_utf8mb4 "Hello") AS output;  --------  | output |  --------  | 40 |  --------   SELECT LENGTH(_utf8mb4 "Hello") AS output;  --------  | output |  --------  | 5 |  --------   

Таким образом, первый результат выражен в битах, а второй-в байтах, и 8 бит = 1 байт.

Таким образом, результат 1 = 8 * результат 2;

Снова,

 SELECT BIT_LENGTH(_ucs2 "Hello") AS output;  --------  | output |  --------  | 48 |  --------   SELECT LENGTH(_ucs2 "Hello") AS output;  --------  | output |  --------  | 6 |  --------   

Здесь снова результат 1 = 8 * результат 2;

Таким образом, разница между этими двумя функциями заключается просто в том, что BIT_LENGTH(str) возвращает результат в битах, а ДЛИНА(str) возвращает результат в байтах,

или есть еще какая-то разница?

Комментарии:

1. Нет, это все. А затем у вас есть ДЛИНА символа, которая подсчитывает количество символов, поэтому 3 2-байтовых символа вернут ДЛИНУ символа как 3, ДЛИНУ как 6, длину БИТА как 48.