In MariaDB CHARACTER_LENGTH()
ist eine eingebaute String-Funktion, die die Länge des gegebenen String-Arguments zurückgibt, gemessen in Zeichen.
CHARACTER_LENGTH()
ist eigentlich ein Synonym für CHAR_LENGTH()
, sodass Sie beides verwenden können.
Syntax
Die Syntax lautet wie folgt:
CHARACTER_LENGTH(str)
Wobei str
ist die Zeichenfolge, für die die Länge zurückgegeben wird.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT CHARACTER_LENGTH('Cat');
Ergebnis:
+-------------------------+| CHARACTER_LENGTH('Katze') |+-------------------------+| 3 |+-------------------------+
In diesem Fall war die Zeichenkette drei Zeichen lang, also haben wir 3
erhalten .
Nicht-Strings
Wenn das Argument kein String ist, wird es in einen String umgewandelt.
Hier ist ein weiteres Beispiel, das eine Zahl verwendet:
SELECT CHARACTER_LENGTH(1234);
Ergebnis:
+------------------------+| CHARACTER_LENGTH(1234) |+------------------------+| 4 |+------------------------+
Vergleich mit CHAR_LENGTH()
Wie bereits erwähnt, CHARACTER_LENGTH()
ist ein Synonym für CHAR_LENGTH()
. Hier im Vergleich mit CHAR_LENGTH()
:
SELECT
CHARACTER_LENGTH(1234),
CHAR_LENGTH(1234);
Ergebnis:
+------------------------+-------------------+| ZEICHENLÄNGE(1234) | ZEICHENLÄNGE(1234) |+-----------------------+------------------- +| 4 | 4 |+------------------------+--------------+Multibyte-Zeichen
Die
CHARACTER_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 wieCHARACTER_LENGTH()
– gibt die Anzahl der Zeichen zurück). Es steht auch im Gegensatz zu Funktionen wieBIT_LENGTH()
die die Anzahl der Bits in einem String zurückgibt.Hier ist ein Beispiel, das diese Funktionen vergleicht:
SELECT CHARACTER_LENGTH('อ'), LENGTH('อ'), BIT_LENGTH('อ');
Ergebnis:
+-------------------------+---------------+---- ---------------+| CHARACTER_LENGTH('อ') | LÄNGE('อ') | BIT_LENGTH('อ') |+--------------------+---------------+ -------------------+| 1 | 3 | 24 |+-------------------------+---------------+----- --------------+Dieses thailändische Zeichen (
อ
) verwendet 3 Bytes.CHARACTER_LENGTH()
gibt 1 zurück, weil es immer noch nur ein einzelnes Zeichen ist.LENGTH()
undBIT_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 wieCHARACTER_LENGTH()
verhalten und gab1
zurück .Null-Argumente
Übergabe von
null
gibtnull
zurück :SELECT CHARACTER_LENGTH(null);
Ergebnis:
+------------------------+| CHARACTER_LENGTH(null) |+-----------------------+| NULL |+------------------------+Fehlendes Argument
Aufruf von
CHARACTER_LENGTH()
ohne Übergabe eines Arguments führt zu einem Fehler:SELECT CHARACTER_LENGTH();
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'CHARACTER_LENGTH'