Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Co to jest LENGTH() w MySQL?

Jedną z wielu funkcji w MySQL jest LENGTH() funkcja, która zwraca długość łańcucha mierzoną w bajtach.

Przykład:

SELECT LENGTH('Lit');

Wynik:

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

To jest prosty przykład, a wynik jest taki sam, jak gdybyśmy użyli CHAR_LENGTH() funkcjonować. Jednak LENGTH() funkcja może zwracać różne wyniki w zależności od typu danych.

Typy danych

Kiedy wysyłasz zapytanie do bazy danych, LENGTH() funkcja może zwrócić inny wynik, w zależności od typu danych. Ciągi Unicode zwracają podwójną liczbę bajtów. Ciągi znaków UTF-8 mogą się różnić.

Oto przykład użycia UTF-8:

SELECT LENGTH(_utf8 '€');

Wyniki:

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

W tym przypadku znak Euro wykorzystuje 3 bajty.

W poniższym przykładzie wysyłamy zapytanie do bazy danych. W tym przypadku ArtistName kolumna używa varchar(255) typ danych:

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

Wynik wygląda więc tak:

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

Jeśli jednak zmienimy kolumnę na ucs2 , każdy znak będzie reprezentowany przez 2-bajtowy kod Unicode, a zatem wynik będzie inny.

Aby to zademonstrować, możemy zmienić tabelę w następujący sposób:

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

Teraz, jeśli zapytamy o to ponownie:

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

Wynik:

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

Puste końcowe

LENGTH() funkcja zlicza końcowe spacje (takie jak spacje na końcu ciągu). Więc jeśli dodamy spację na końcu pierwszego przykładu, otrzymamy następujący wynik:

SELECT LENGTH('Lit');

Wynik:

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

Białe puste miejsca

Ten sam wynik otrzymujemy z wiodącymi spacjami (np. spacją na początku łańcucha):

SELECT LENGTH('Lit');

Wynik:

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

Transact-SQL (dla SQL Server, Azure) ma podobną funkcję, ale w T-SQL nazywa się 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. Jak utworzyć użytkownika w MySQL

  2. Funkcja MySQL LOG2() – Zwróć logarytm Base-2 wartości

  3. Zamień na składnię zapytania

  4. Śledzenie powiadomień na Facebooku (DB Design)

  5. Uzyskaj dane wyjściowe bazy danych MySQL przez PHP do XML