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'