MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

MariaDB LENGTHB() erklärt

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 .