In MariaDB, CHAR_LENGTH()
è una funzione stringa incorporata che restituisce la lunghezza dell'argomento stringa specificato, misurata in caratteri.
Sintassi
La sintassi è questa:
CHAR_LENGTH(str)
Dove str
è la stringa per la quale verrà restituita la lunghezza.
Esempio
Ecco un esempio di base:
SELECT CHAR_LENGTH('Splash');
Risultato:
+-----------------------+ | CHAR_LENGTH('Splash') | +-----------------------+ | 6 | +-----------------------+
Caratteri multibyte
Il CHAR_LENGTH()
la funzione conta ogni carattere come un singolo carattere, indipendentemente dal numero di byte che utilizza. Pertanto, i caratteri che utilizzano due, tre o anche quattro byte verranno comunque contati come un carattere.
Questo è in contrasto con funzioni come LENGTH()
, che restituisce il numero di byte (a meno che non sia in modalità Oracle, nel qual caso fa lo stesso di CHAR_LENGTH()
– restituisce il numero di caratteri). È anche in contrasto con funzioni come BIT_LENGTH()
che restituisce il numero di bit in una stringa.
Ecco un esempio che confronta queste funzioni:
SELECT
CHAR_LENGTH('©'),
LENGTH('©'),
BIT_LENGTH('©');
Risultato:
+-------------------+--------------+------------------+ | CHAR_LENGTH('©') | LENGTH('©') | BIT_LENGTH('©') | +-------------------+--------------+------------------+ | 1 | 2 | 16 | +-------------------+--------------+------------------+
Il simbolo del copyright (©
) utilizza due byte. CHAR_LENGTH()
restituisce 1, perché è ancora solo un singolo carattere. LENGTH()
e BIT_LENGTH()
d'altra parte, restituisce rispettivamente il numero di byte e bit.
Questo esempio è stato eseguito utilizzando l'impostazione predefinita SQL_MODE
. Come accennato, se fosse stato in modalità Oracle, LENGTH()
si sarebbe comportato come CHAR_LENGTH()
e ha restituito 1
.
Argomenti nulli
Passaggio null
restituisce null
:
SELECT CHAR_LENGTH(null);
Risultato:
+-------------------+ | CHAR_LENGTH(null) | +-------------------+ | NULL | +-------------------+
Argomento mancante
Chiamando CHAR_LENGTH()
senza passare un argomento si ottiene un errore:
SELECT CHAR_LENGTH();
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CHAR_LENGTH'
Vedi anche il CHARACTER_LENGTH()
funzione, che è sinonimo di CHAR_LENGTH()
.