В 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“