Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como a função CHARACTER_LENGTH() funciona no MySQL


No MySQL, o CHARACTER_LENGTH() A função retorna o comprimento de uma string, medida em caracteres.

CHARACTER_LENGTH() é um sinônimo para o CHAR_LENGTH() função.


Sintaxe


A sintaxe fica assim:
CHARACTER_LENGTH(str)

Onde str é a string para a qual o comprimento será retornado.

Exemplo 1 – Uso básico


Aqui está um exemplo do uso básico:
SELECT CHARACTER_LENGTH('Cat');

E aqui está o resultado:
+-------------------------+
| CHARACTER_LENGTH('Cat') |
+-------------------------+
|                       3 |
+-------------------------+

Exemplo 2 – Espaços em branco à direita


Observe que CHARACTER_LENGTH() inclui espaços em branco à direita (por exemplo, espaços no final da string) em seus cálculos.

Então, se adicionarmos um espaço ao final do exemplo anterior:
SELECT CHARACTER_LENGTH('Cat');

Aqui está o resultado:
+--------------------------+
| CHARACTER_LENGTH('Cat ') |
+--------------------------+
|                        4 |
+--------------------------+

Mas sempre podemos remover esse espaço à direita usando o TRIM() ou a função RTRIM() função:
SELECT 
  CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM',
  CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM';

Aqui está o resultado:
+------+-------+
| TRIM | RTRIM |
+------+-------+
|    3 |     3 |
+------+-------+

Exemplo 3 – Espaços em branco à esquerda


O mesmo conceito se aplica aos espaços em branco iniciais. Você pode usar TRIM ou LTRIM :
SELECT 
  CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM',
  CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM';

Resultado:
+------+-------+
| TRIM | LTRIM |
+------+-------+
|    3 |     3 |
+------+-------+

Exemplo 4 – Tipos de dados


Não importa em que tipo de dados a string é armazenada, ela ainda retornará o mesmo resultado. Isso contrasta com o LENGTH() função, que retornará o dobro do número de caracteres nos casos em que os dados estiverem sendo armazenados como uma string Unicode.

No exemplo a seguir, a coluna ArtistName usa varchar(255) :
SELECT CHARACTER_LENGTH(ArtistName) Result
FROM Artists
WHERE ArtistName = 'Lit';

Aqui está o resultado:
+--------+
| Result |
+--------+
|      3 |
+--------+

E se modificarmos o ArtistName coluna para usar Unicode:
ALTER TABLE Artists 
MODIFY COLUMN ArtistName VARCHAR(255) unicode;

E execute a mesma consulta novamente:
SELECT CHARACTER_LENGTH(ArtistName) 
FROM Artists
WHERE ArtistName = 'Lit';

Ainda obtemos o mesmo resultado:
+--------+
| Result |
+--------+
|      3 |
+--------+

No entanto, se tivéssemos usado o LENGTH() função, o resultado seria 6. Isso ocorre porque as strings Unicode armazenam 2 bytes por caractere e o LENGTH() A função retorna o comprimento medido em bytes.