В MySQL, CHARACTER_LENGTH() функцията връща дължината на низ, измерена в знаци.
CHARACTER_LENGTH() е синоним на CHAR_LENGTH() функция.
Синтаксис
Синтаксисът е така:
CHARACTER_LENGTH(str)
Където str е низът, за който ще бъде върната дължината.
Пример 1 – Основна употреба
Ето пример за основното използване:
SELECT CHARACTER_LENGTH('Cat');
И ето резултата:
+-------------------------+
| CHARACTER_LENGTH('Cat') |
+-------------------------+
| 3 |
+-------------------------+
Пример 2 – Крайни празни места
Обърнете внимание, че CHARACTER_LENGTH() включва крайни празни места (напр. интервали в края на низа) в своите изчисления.
Така че, ако добавим интервал в края на предишния пример:
SELECT CHARACTER_LENGTH('Cat');
Ето резултата:
+--------------------------+
| CHARACTER_LENGTH('Cat ') |
+--------------------------+
| 4 |
+--------------------------+
Но винаги можем да премахнем това крайно пространство, като използваме или TRIM() функция или RTRIM() функция:
SELECT
CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM',
CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM';
Ето резултата:
+------+-------+ | TRIM | RTRIM | +------+-------+ | 3 | 3 | +------+-------+
Пример 3 – Водещи празни места
Същата концепция важи и за водещите празни места. Можете да използвате или TRIM или LTRIM :
SELECT
CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM',
CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM';
Резултат:
+------+-------+ | TRIM | LTRIM | +------+-------+ | 3 | 3 | +------+-------+
Пример 4 – Типове данни
Няма значение какъв тип данни е съхранен низът, той пак ще върне същия резултат. Това е в контраст с LENGTH() функция, която ще върне двоен брой знаци в случаите, когато данните се съхраняват като Unicode низ.
В следващия пример колоната ArtistName използва varchar(255) :
SELECT CHARACTER_LENGTH(ArtistName) Result FROM Artists WHERE ArtistName = 'Lit';
Ето резултата:
+--------+ | Result | +--------+ | 3 | +--------+
И ако променим ArtistName колона, за да използвате Unicode:
ALTER TABLE Artists MODIFY COLUMN ArtistName VARCHAR(255) unicode;
И изпълнете отново същата заявка:
SELECT CHARACTER_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Все още получаваме същия резултат:
+--------+ | Result | +--------+ | 3 | +--------+
Въпреки това, ако бяхме използвали LENGTH() функция, резултатът ще бъде 6. Това е така, защото Unicode низовете съхраняват 2 байта на знак, а LENGTH() функцията връща дължината, измерена в байтове.