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

Funktionsweise der Funktion CHARACTER_LENGTH() in MySQL

In MySQL die CHARACTER_LENGTH() Die Funktion gibt die Länge einer Zeichenfolge zurück, gemessen in Zeichen.

CHARACTER_LENGTH() ist ein Synonym für CHAR_LENGTH() Funktion.

Syntax

Die Syntax lautet wie folgt:

CHARACTER_LENGTH(str)

Wobei str ist die Zeichenfolge, für die die Länge zurückgegeben wird.

Beispiel 1 – Grundlegende Verwendung

Hier ist ein Beispiel für die grundlegende Verwendung:

SELECT CHARACTER_LENGTH('Cat');

Und hier ist das Ergebnis:

+-------------------------+
| CHARACTER_LENGTH('Cat') |
+-------------------------+
|                       3 |
+-------------------------+

Beispiel 2 – Nachgestellte Leerzeichen

Beachten Sie, dass CHARACTER_LENGTH() schließt abschließende Leerzeichen (z. B. Leerzeichen am Ende des Strings) in seine Berechnungen ein.

Wenn wir also am Ende des vorherigen Beispiels ein Leerzeichen hinzufügen:

SELECT CHARACTER_LENGTH('Cat');

Hier ist das Ergebnis:

+--------------------------+
| CHARACTER_LENGTH('Cat ') |
+--------------------------+
|                        4 |
+--------------------------+

Aber wir können dieses abschließende Leerzeichen jederzeit entfernen, indem wir entweder TRIM() verwenden Funktion oder die RTRIM() Funktion:

SELECT 
  CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM',
  CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM';

Hier ist das Ergebnis:

+------+-------+
| TRIM | RTRIM |
+------+-------+
|    3 |     3 |
+------+-------+

Beispiel 3 – Führende Leerzeichen

Das gleiche Konzept gilt für führende Leerzeichen. Sie können entweder TRIM verwenden oder LTRIM :

SELECT 
  CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM',
  CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM';

Ergebnis:

+------+-------+
| TRIM | LTRIM |
+------+-------+
|    3 |     3 |
+------+-------+

Beispiel 4 – Datentypen

Es spielt keine Rolle, als welcher Datentyp der String gespeichert wird, er wird immer noch das gleiche Ergebnis zurückgeben. Dies steht im Gegensatz zu LENGTH() Funktion, die die doppelte Anzahl von Zeichen zurückgibt, wenn die Daten als Unicode-String gespeichert werden.

Im folgenden Beispiel verwendet die ArtistName-Spalte varchar(255) :

SELECT CHARACTER_LENGTH(ArtistName) Result
FROM Artists
WHERE ArtistName = 'Lit';

Hier ist das Ergebnis:

+--------+
| Result |
+--------+
|      3 |
+--------+

Und wenn wir den ArtistName ändern Spalte zur Verwendung von Unicode:

ALTER TABLE Artists 
MODIFY COLUMN ArtistName VARCHAR(255) unicode;

Und führen Sie dieselbe Abfrage erneut aus:

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

Wir erhalten immer noch das gleiche Ergebnis:

+--------+
| Result |
+--------+
|      3 |
+--------+

Wenn wir jedoch die LENGTH() verwendet hätten -Funktion, wäre das Ergebnis 6. Dies liegt daran, dass Unicode-Strings 2 Bytes pro Zeichen und die LENGTH() speichern Funktion gibt die Länge gemessen in Bytes zurück.