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