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.