MariaDB
 sql >> Database >  >> RDS >> MariaDB

Spiegazione di MariaDB CHARACTER_LENGTH()

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'