Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist LENGTH() in MySQL?

Eine der vielen Funktionen in MySQL ist LENGTH() Funktion, die die Länge eines Strings zurückgibt, gemessen in Bytes.

Beispiel:

SELECT LENGTH('Lit');

Ergebnis:

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

Dies ist ein einfaches Beispiel und das Ergebnis ist dasselbe, als ob wir CHAR_LENGTH() verwendet hätten Funktion. Allerdings ist die LENGTH() Funktion kann je nach Datentyp unterschiedliche Ergebnisse zurückgeben.

Datentypen

Wenn Sie eine Datenbank abfragen, wird die LENGTH() Funktion kann je nach Datentyp ein anderes Ergebnis zurückgeben. Unicode-Strings geben die doppelte Anzahl von Bytes zurück. UTF-8-Strings können variieren.

Hier ist ein Beispiel für die Verwendung von UTF-8:

SELECT LENGTH(_utf8 '€');

Ergebnisse:

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

In diesem Fall belegt das Eurozeichen 3 Byte.

Im folgenden Beispiel fragen wir eine Datenbank ab. In diesem Fall der ArtistName Spalte verwendet varchar(255) Datentyp:

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

Das Ergebnis sieht also so aus:

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

Wenn wir jedoch die Spalte in ucs2 ändern , wird jedes Zeichen durch einen 2-Byte-Unicode-Code dargestellt, und daher ist das Ergebnis anders.

Zur Demonstration können wir die Tabelle wie folgt ändern:

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

Wenn wir es jetzt noch einmal abfragen:

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

Ergebnis:

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

Nachgestellte Leerzeichen

Die LENGTH() Die Funktion zählt nachgestellte Leerzeichen (z. B. Leerzeichen am Ende der Zeichenfolge). Wenn wir also am Ende des ersten Beispiels ein Leerzeichen hinzufügen, erhalten wir das folgende Ergebnis:

SELECT LENGTH('Lit ');

Ergebnis:

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

Führende Leerzeichen

Dasselbe Ergebnis erhalten wir mit führenden Leerzeichen (z. B. Leerzeichen am Anfang des Strings):

SELECT LENGTH(' Lit');

Ergebnis:

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

Transact-SQL (für SQL Server, Azure) hat eine ähnliche Funktion, aber in T-SQL heißt sie  DATALENGTH() .