I MariaDB, LENGTHB()
är en inbyggd strängfunktion som returnerar längden på det givna strängargumentet, mätt i byte.
Syntax
Syntaxen ser ut så här:
LENGTHB(str)
Där str
är strängen för vilken längden kommer att returneras.
Exempel
Här är ett grundläggande exempel:
SELECT LENGTHB('café');
Resultat:
+------------------+ | LENGTHB('café') | +------------------+ | 5 | +------------------+
I det här fallet var strängen fyra tecken lång, men LENGTHB()
returnerade 5
. Detta beror på att det sista tecknet använder två byte.
Jämförelse med CHAR_LENGTH()
och BIT_LENGTH()
Här är en snabb jämförelse mellan LENGTHB()
, CHAR_LENGTH()
(som returnerar antalet tecken i strängen) och BIT_LENGTH()
(som returnerar antalet bitar i strängen):
SELECT
LENGTHB('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Resultat:
+----------------+--------------------+-------------------+ | LENGTHB('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +----------------+--------------------+-------------------+ | 3 | 1 | 24 | +----------------+--------------------+-------------------+
Detta thailändska tecken (อ
) använder 3 byte, och därför LENGTHB()
returnerar 3
.
CHAR_LENGTH()
returnerar 1
, eftersom det fortfarande bara är ett enda tecken och BIT_LENGTH()
returnerar antalet bitar (24
).
Icke-strängar
Om argumentet inte är en sträng, konverteras det till en sträng.
Här är ett annat exempel som använder ett nummer:
SELECT LENGTHB(1234);
Resultat:
+---------------+ | LENGTHB(1234) | +---------------+ | 4 | +---------------+
Nollargument
Skickar null
returnerar null
:
SELECT LENGTHB(null);
Resultat:
+---------------+ | LENGTHB(null) | +---------------+ | NULL | +---------------+
Argument saknas
Anropar LENGTHB()
utan att skicka ett argument resulterar det i ett fel:
SELECT LENGTHB();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LENGTHB'
LENGTHB()
kontra LENGTH()
LENGTHB()
funktionen liknar LENGTH()
funktion, förutom hur det fungerar i Oracle-läge.
LENGTHB()
Funktionen fungerar på samma sätt, oavsett vilket läge den är i (dvs. den returnerar antalet byte i strängen).
LENGTH()
å andra sidan beter sig olika, beroende på om det är i Oracle-läge eller standardläge.
Närmare bestämt, i standardläge, LENGTH()
mäter strängen i byte. Men i Oracle-läge mäter den strängen i tecken .