In MariaDB, CHAR_LENGTH()
ist eine eingebaute String-Funktion, die die Länge des gegebenen String-Arguments zurückgibt, gemessen in Zeichen.
Syntax
Die Syntax lautet wie folgt:
CHAR_LENGTH(str)
Wobei str
ist die Zeichenfolge, für die die Länge zurückgegeben wird.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT CHAR_LENGTH('Splash');
Ergebnis:
+-----------------------+ | CHAR_LENGTH('Splash') | +-----------------------+ | 6 | +-----------------------+
Multibyte-Zeichen
Die CHAR_LENGTH()
-Funktion zählt jedes Zeichen als einzelnes Zeichen, unabhängig davon, wie viele Bytes es verwendet. Daher werden Zeichen, die zwei, drei oder sogar vier Bytes verwenden, weiterhin als ein Zeichen gezählt.
Dies steht im Gegensatz zu Funktionen wie LENGTH()
, das die Anzahl der Bytes zurückgibt (es sei denn, es befindet sich im Oracle-Modus, in diesem Fall macht es dasselbe wie CHAR_LENGTH()
– gibt die Anzahl der Zeichen zurück). Es steht auch im Gegensatz zu Funktionen wie BIT_LENGTH()
die die Anzahl der Bits in einem String zurückgibt.
Hier ist ein Beispiel, das diese Funktionen vergleicht:
SELECT
CHAR_LENGTH('©'),
LENGTH('©'),
BIT_LENGTH('©');
Ergebnis:
+-------------------+--------------+------------------+ | CHAR_LENGTH('©') | LENGTH('©') | BIT_LENGTH('©') | +-------------------+--------------+------------------+ | 1 | 2 | 16 | +-------------------+--------------+------------------+
Das Copyright-Symbol (©
) verwendet zwei Bytes. CHAR_LENGTH()
gibt 1 zurück, weil es immer noch nur ein einzelnes Zeichen ist. LENGTH()
und BIT_LENGTH()
geben andererseits die Anzahl der Bytes bzw. Bits zurück.
Dieses Beispiel wurde mit dem Standard SQL_MODE
durchgeführt . Wie bereits erwähnt, wenn es sich im Oracle-Modus befunden hätte, LENGTH()
hätte sich wie CHAR_LENGTH()
verhalten und gab 1
zurück .
Null-Argumente
Übergabe von null
gibt null
zurück :
SELECT CHAR_LENGTH(null);
Ergebnis:
+-------------------+ | CHAR_LENGTH(null) | +-------------------+ | NULL | +-------------------+
Fehlendes Argument
Aufruf von CHAR_LENGTH()
ohne Übergabe eines Arguments führt zu einem Fehler:
SELECT CHAR_LENGTH();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CHAR_LENGTH'
Siehe auch CHARACTER_LENGTH()
Funktion, die ein Synonym für CHAR_LENGTH()
ist .