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

Как работи функцията CHARACTER_LENGTH() в MySQL

В 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() функцията връща дължината, измерена в байтове.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да оптимизираме базата данни на уебсайта

  2. Използване на JDeveloper с MySQL база данни и Oracle Database на AWS RDS, част 1

  3. В PHP с PDO, как да проверя окончателната SQL параметризирана заявка?

  4. Съхранените процедури на MySQL ги използват или не, за да ги използват

  5. Mysql заявка за динамично преобразуване на редове в колони