In MariaDB LENGTHB()
ist eine integrierte Zeichenfolgenfunktion, die die Länge des angegebenen Zeichenfolgenarguments zurückgibt, gemessen in Bytes.
Syntax
Die Syntax lautet wie folgt:
LENGTHB(str)
Wobei str
ist die Zeichenfolge, für die die Länge zurückgegeben wird.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT LENGTHB('café');
Ergebnis:
+------------------+ | LENGTHB('café') | +------------------+ | 5 | +------------------+
In diesem Fall war der String vier Zeichen lang, aber LENGTHB()
gab 5
zurück . Das liegt daran, dass das letzte Zeichen zwei Bytes belegt.
Vergleich mit CHAR_LENGTH()
und BIT_LENGTH()
Hier ist ein schneller Vergleich zwischen LENGTHB()
, CHAR_LENGTH()
(was die Anzahl der Zeichen zurückgibt im String) und BIT_LENGTH()
(was die Anzahl der Bits zurückgibt im String):
SELECT
LENGTHB('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Ergebnis:
+----------------+--------------------+-------------------+ | LENGTHB('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +----------------+--------------------+-------------------+ | 3 | 1 | 24 | +----------------+--------------------+-------------------+
Dieses thailändische Zeichen (อ
) verwendet 3 Bytes und daher LENGTHB()
gibt 3
zurück .
CHAR_LENGTH()
gibt 1
zurück , weil es immer noch nur ein einzelnes Zeichen ist, und BIT_LENGTH()
gibt die Anzahl der Bits zurück (24
).
Nicht-Strings
Wenn das Argument kein String ist, wird es in einen String umgewandelt.
Hier ist ein weiteres Beispiel, das eine Zahl verwendet:
SELECT LENGTHB(1234);
Ergebnis:
+---------------+ | LENGTHB(1234) | +---------------+ | 4 | +---------------+
Null-Argumente
Übergabe von null
gibt null
zurück :
SELECT LENGTHB(null);
Ergebnis:
+---------------+ | LENGTHB(null) | +---------------+ | NULL | +---------------+
Fehlendes Argument
Aufruf von LENGTHB()
ohne Übergabe eines Arguments führt zu einem Fehler:
SELECT LENGTHB();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LENGTHB'
LENGTHB()
vs LENGTH()
Die LENGTHB()
Funktion ähnelt der LENGTH()
Funktion, mit Ausnahme der Funktionsweise im Oracle-Modus.
Die LENGTHB()
funktioniert auf die gleiche Weise, unabhängig davon, in welchem Modus sie sich befindet (d. h. sie gibt die Anzahl der Bytes in der Zeichenfolge zurück).
LENGTH()
verhält sich dagegen anders, je nachdem, ob es sich im Oracle-Modus oder im Standardmodus befindet.
Insbesondere im Standardmodus LENGTH()
misst den String in Bytes. Aber im Oracle-Modus misst es die Zeichenfolge in Zeichen .