Mysql
 sql >> Database >  >> RDS >> Mysql

Come funziona la funzione CHARACTER_LENGTH() in MySQL

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.