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() .