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

Какво е LENGTH() в MySQL?

Една от многото функции в MySQL е LENGTH() функция, която връща дължината на низ, измерена в байтове.

Пример:

SELECT LENGTH('Lit');

Резултат:

+---------------+
| LENGTH('Lit') |
+---------------+
|             3 |
+---------------+

Това е прост пример и резултатът е същият, както ако използвахме CHAR_LENGTH() функция. Въпреки това, LENGTH() функцията може да връща различни резултати в зависимост от типа данни.

Типове данни

Когато правите заявка към база данни, LENGTH() функцията може да върне различен резултат в зависимост от типа данни. Unicode низовете връщат двоен брой байтове. UTF-8 низовете могат да варират.

Ето пример за използване на UTF-8:

SELECT LENGTH(_utf8 '€');

Резултати:

+---------------------+
| LENGTH(_utf8 '€')   |
+---------------------+
|                   3 |
+---------------------+

В този случай знакът за евро използва 3 байта.

В следващия пример правим заявка към база данни. В този случай ArtistName колоната използва varchar(255) тип данни:

SELECT LENGTH(ArtistName) 
FROM Artists
WHERE ArtistName = 'Lit';

Така че резултатът изглежда така:

+--------------------+
| LENGTH(ArtistName) |
+--------------------+
|                  3 |
+--------------------+

Ако обаче променим колоната на ucs2 , всеки знак ще бъде представен с 2 байтов Unicode код и следователно резултатът ще бъде различен.

За да демонстрираме, можем да променим таблицата по следния начин:

SELECT LENGTH(ArtistName) 
ALTER TABLE Artists 
MODIFY COLUMN ArtistName VARCHAR(255) CHARSET ucs2;

Сега, ако го потърсим отново:

SELECT LENGTH(ArtistName) 
FROM Artists
WHERE ArtistName = 'Lit';

Резултат:

+--------------------+
| LENGTH(ArtistName) |
+--------------------+
|                  6 |
+--------------------+

Завършващи празни места

 LENGTH() функцията брои крайните празни места (като интервали в края на низа). Така че, ако добавим интервал в края на първия пример, получаваме следния резултат:

SELECT LENGTH('Lit ');

Резултат:

+----------------+
| LENGTH('Lit ') |
+----------------+
|              4 |
+----------------+

Водещи празни места

Получаваме същия резултат с водещи празни места (например интервали в началото на низа):

SELECT LENGTH('Lit ');

Резултат:

+----------------+
| LENGTH('Lit ') |
+----------------+
|              4 |
+----------------+

Transact-SQL (за SQL Server, Azure) има подобна функция, но в T-SQL тя се нарича  DATALENGTH() .


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

  2. PHP PDO - брой редове

  3. Как да извадя часовете от дата и час в MySQL?

  4. Как да изчислим общите продажби на месец в MySQL?

  5. mysql_fetch_assoc():предоставеният аргумент не е валиден ресурс за MySQL резултат в php