In MariaDB, CHARACTER_LENGTH()
è una funzione stringa incorporata che restituisce la lunghezza dell'argomento stringa specificato, misurata in caratteri.
CHARACTER_LENGTH()
è in realtà un sinonimo di CHAR_LENGTH()
, quindi puoi utilizzare entrambi.
Sintassi
La sintassi è questa:
CHARACTER_LENGTH(str)
Dove str
è la stringa per la quale verrà restituita la lunghezza.
Esempio
Ecco un esempio di base:
SELECT CHARACTER_LENGTH('Cat');
Risultato:
+-------------------------+ | CHARACTER_LENGTH('Cat') | +-------------------------+ | 3 | +-------------------------+
In questo caso, la stringa era lunga tre caratteri e quindi abbiamo ottenuto 3
.
Non stringhe
Se l'argomento non è una stringa, viene convertito in una stringa.
Ecco un altro esempio che utilizza un numero:
SELECT CHARACTER_LENGTH(1234);
Risultato:
+------------------------+ | CHARACTER_LENGTH(1234) | +------------------------+ | 4 | +------------------------+
Confronto con CHAR_LENGTH()
Come accennato, CHARACTER_LENGTH()
è sinonimo di CHAR_LENGTH()
. Eccolo in confronto con CHAR_LENGTH()
:
SELECT
CHARACTER_LENGTH(1234),
CHAR_LENGTH(1234);
Risultato:
+------------------------+-------------------+ | CHARACTER_LENGTH(1234) | CHAR_LENGTH(1234) | +------------------------+-------------------+ | 4 | 4 | +------------------------+-------------------+
Caratteri multibyte
Il CHARACTER_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 CHARACTER_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
CHARACTER_LENGTH('อ'),
LENGTH('อ'),
BIT_LENGTH('อ');
Risultato:
+-------------------------+---------------+-------------------+ | CHARACTER_LENGTH('อ') | LENGTH('อ') | BIT_LENGTH('อ') | +-------------------------+---------------+-------------------+ | 1 | 3 | 24 | +-------------------------+---------------+-------------------+
Questo carattere tailandese (อ
) utilizza 3 byte. CHARACTER_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 CHARACTER_LENGTH()
e ha restituito 1
.
Argomenti nulli
Passaggio null
restituisce null
:
SELECT CHARACTER_LENGTH(null);
Risultato:
+------------------------+ | CHARACTER_LENGTH(null) | +------------------------+ | NULL | +------------------------+
Argomento mancante
Chiamando CHARACTER_LENGTH()
senza passare un argomento si ottiene un errore:
SELECT CHARACTER_LENGTH();
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CHARACTER_LENGTH'