I MariaDB, CHAR_LENGTH()
är en inbyggd strängfunktion som returnerar längden på det givna strängargumentet, mätt i tecken.
Syntax
Syntaxen ser ut så här:
CHAR_LENGTH(str)
Där str
är strängen för vilken längden kommer att returneras.
Exempel
Här är ett grundläggande exempel:
SELECT CHAR_LENGTH('Splash');
Resultat:
+-----------------------+ | CHAR_LENGTH('Splash') | +-----------------------+ | 6 | +-----------------------+
Multi-Byte-tecken
CHAR_LENGTH()
Funktionen räknar varje tecken som ett enda tecken, oavsett hur många byte den använder. Därför kommer tecken som använder två, tre eller till och med fyra byte fortfarande att räknas som ett tecken.
Detta till skillnad från funktioner som LENGTH()
, som returnerar antalet byte (om det inte är i Oracle-läge, i vilket fall det gör samma sak som CHAR_LENGTH()
– returnerar antalet tecken). Det är också i motsats till funktioner som BIT_LENGTH()
som returnerar antalet bitar i en sträng.
Här är ett exempel som jämför dessa funktioner:
SELECT
CHAR_LENGTH('©'),
LENGTH('©'),
BIT_LENGTH('©');
Resultat:
+-------------------+--------------+------------------+ | CHAR_LENGTH('©') | LENGTH('©') | BIT_LENGTH('©') | +-------------------+--------------+------------------+ | 1 | 2 | 16 | +-------------------+--------------+------------------+
Upphovsrättssymbolen (©
) använder två byte. CHAR_LENGTH()
returnerar 1, eftersom det fortfarande bara är ett enda tecken. LENGTH()
och BIT_LENGTH()
å andra sidan, returnera antalet byte respektive bitar.
Det här exemplet gjordes med standard SQL_MODE
. Som nämnts, om den hade varit i Oracle-läge, LENGTH()
skulle ha betett sig som CHAR_LENGTH()
och returnerade 1
.
Nollargument
Skickar null
returnerar null
:
SELECT CHAR_LENGTH(null);
Resultat:
+-------------------+ | CHAR_LENGTH(null) | +-------------------+ | NULL | +-------------------+
Argument saknas
Anropar CHAR_LENGTH()
utan att skicka ett argument resulterar det i ett fel:
SELECT CHAR_LENGTH();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CHAR_LENGTH'
Se även CHARACTER_LENGTH()
funktion, som är en synonym för CHAR_LENGTH()
.