В MariaDB, CHARACTER_LENGTH()
е вградена низова функция, която връща дължината на дадения низов аргумент, измерена в знаци.
CHARACTER_LENGTH()
всъщност е синоним на CHAR_LENGTH()
, така че можете да използвате и двете.
Синтаксис
Синтаксисът е така:
CHARACTER_LENGTH(str)
Където str
е низът, за който ще бъде върната дължината.
Пример
Ето един основен пример:
SELECT CHARACTER_LENGTH('Cat');
Резултат:
+------------------------+| CHARACTER_LENGTH('Котка') |+-------------------------+| 3 |+-------------------+
В този случай низът беше дълъг три знака и така получихме 3
.
Не-низови
Ако аргументът не е низ, той се преобразува в низ.
Ето още един пример, който използва число:
SELECT CHARACTER_LENGTH(1234);
Резултат:
+-----------------------+| CHARACTER_LENGTH(1234) |+-----------------------+| 4 |+------------------------+
Сравнение с CHAR_LENGTH()
Както бе споменато, CHARACTER_LENGTH()
е синоним на CHAR_LENGTH()
. Ето го в сравнение с CHAR_LENGTH()
:
SELECT
CHARACTER_LENGTH(1234),
CHAR_LENGTH(1234);
Резултат:
+-------------------+-------------------+| CHARACTER_LENGTH(1234) | CHAR_LENGTH(1234) |+-----------------------+------------------ +| 4 | 4 |+------------------------+------------------+предварително>Многобайтови символи
CHARACTER_LENGTH()
функцията отчита всеки знак като единичен знак, независимо колко байта използва. Следователно знаците, които използват два, три или дори четири байта, пак ще се отчитат като един знак.Това е в контраст с функции като
LENGTH()
, който връща броя на байтовете (освен ако не е в режим на Oracle, в който случай прави същото катоCHARACTER_LENGTH()
– връща броя на знаците). Освен това е в контраст с функции катоBIT_LENGTH()
който връща броя на битовете в низ.Ето пример, който сравнява тези функции:
SELECT CHARACTER_LENGTH('อ'), LENGTH('อ'), BIT_LENGTH('อ');
Резултат:
+------------------------+--------------+---- ---------------+| CHARACTER_LENGTH('อ') | LENGTH('อ') | BIT_LENGTH('อ') |+-------------------------+--------------+ -------------------+| 1 | 3 | 24 |+------------------------+--------------+----- --------------+Този тайландски знак (
อ
) използва 3 байта.CHARACTER_LENGTH()
връща 1, защото все още е само един знак.LENGTH()
иBIT_LENGTH()
от друга страна, върнете съответно броя байтове и битове.Този пример беше направен с помощта на
SQL_MODE
по подразбиране . Както споменахме, ако беше в режим на Oracle,LENGTH()
би се държал катоCHARACTER_LENGTH()
и върна1
.Нулеви аргументи
Предаването на
null
връщаnull
:SELECT CHARACTER_LENGTH(null);
Резултат:
+-----------------------+| CHARACTER_LENGTH(нула) |+-----------------------+| NULL |+------------------------+Липсващ аргумент
Извикване на
CHARACTER_LENGTH()
без подаване на аргумент води до грешка:SELECT CHARACTER_LENGTH();
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествена функция „CHARACTER_LENGTH“