In MySQL, il CHARACTER_LENGTH()
La funzione restituisce la lunghezza di una stringa, misurata in caratteri.
CHARACTER_LENGTH()
è un sinonimo di CHAR_LENGTH()
funzione.
Sintassi
La sintassi è questa:
CHARACTER_LENGTH(str)
Dove str
è la stringa per la quale verrà restituita la lunghezza.
Esempio 1 – Utilizzo di base
Ecco un esempio dell'utilizzo di base:
SELECT CHARACTER_LENGTH('Cat');
Ed ecco il risultato:
+-------------------------+ | CHARACTER_LENGTH('Cat') | +-------------------------+ | 3 | +-------------------------+
Esempio 2:spazi vuoti finali
Nota che CHARACTER_LENGTH()
include spazi finali (ad es. spazi alla fine della stringa) nei suoi calcoli.
Quindi se aggiungiamo uno spazio alla fine dell'esempio precedente:
SELECT CHARACTER_LENGTH('Cat ');
Ecco il risultato:
+--------------------------+ | CHARACTER_LENGTH('Cat ') | +--------------------------+ | 4 | +--------------------------+
Ma possiamo sempre rimuovere quello spazio finale usando il TRIM()
o la funzione RTRIM()
funzione:
SELECT CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM', CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM';
Ecco il risultato:
+------+-------+ | TRIM | RTRIM | +------+-------+ | 3 | 3 | +------+-------+
Esempio 3:spazi vuoti iniziali
Lo stesso concetto si applica agli spazi vuoti principali. Puoi usare sia TRIM
o LTRIM
:
SELECT CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM', CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM';
Risultato:
+------+-------+ | TRIM | LTRIM | +------+-------+ | 3 | 3 | +------+-------+
Esempio 4 – Tipi di dati
Non importa in quale tipo di dati è archiviata la stringa, restituirà comunque lo stesso risultato. Questo è in contrasto con LENGTH()
funzione, che restituirà il doppio del numero di caratteri nei casi in cui i dati vengono archiviati come stringa Unicode.
Nell'esempio seguente, la colonna ArtistName utilizza varchar(255) :
SELECT CHARACTER_LENGTH(ArtistName) Result FROM Artists WHERE ArtistName = 'Lit';
Ecco il risultato:
+--------+ | Result | +--------+ | 3 | +--------+
E se modifichiamo il ArtistName
colonna per utilizzare Unicode:
ALTER TABLE Artists MODIFY COLUMN ArtistName VARCHAR(255) unicode;
Ed esegui di nuovo la stessa query:
SELECT CHARACTER_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Otteniamo sempre lo stesso risultato:
+--------+ | Result | +--------+ | 3 | +--------+
Tuttavia, se avessimo usato LENGTH()
funzione, il risultato sarebbe 6. Questo perché le stringhe Unicode memorizzano 2 byte per carattere e LENGTH()
la funzione restituisce la lunghezza misurata in byte.