MariaDB
 sql >> база данни >  >> RDS >> MariaDB

MariaDB CHARACTER_LENGTH() Обяснено

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи LEFT() в MariaDB

  2. Обработване на проблеми с репликацията от не-GTID към GTID MariaDB клъстери от база данни

  3. Как работи RLIKE в MariaDB

  4. Как RTRIM() работи в MariaDB

  5. Как да изпълнявате и управлявате резервни копия на MySQL за Oracle DBA