#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.