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

O que é LENGTH() no MySQL?


Uma das muitas funções no MySQL é o LENGTH() função, que retorna o comprimento de uma string, medido em bytes.

Exemplo:
SELECT LENGTH('Lit');

Resultado:
+---------------+
| LENGTH('Lit') |
+---------------+
|             3 |
+---------------+

Este é um exemplo simples e o resultado é o mesmo se tivéssemos usado o CHAR_LENGTH() função. No entanto, o LENGTH() função pode retornar resultados diferentes, dependendo do tipo de dados.

Tipos de dados


Quando você consulta um banco de dados, o LENGTH() função pode retornar um resultado diferente, dependendo do tipo de dados. As strings Unicode retornam o dobro do número de bytes. As strings UTF-8 podem variar.

Aqui está um exemplo de uso de UTF-8:
SELECT LENGTH(_utf8 '€');

Resultados:
+---------------------+
| LENGTH(_utf8 '€')   |
+---------------------+
|                   3 |
+---------------------+

Neste caso, o sinal do Euro usa 3 bytes.

No exemplo a seguir, consultamos um banco de dados. Nesse caso, o ArtistName coluna usa varchar(255) tipo de dados:
SELECT LENGTH(ArtistName) 
FROM Artists
WHERE ArtistName = 'Lit';

Então o resultado fica assim:
+--------------------+
| LENGTH(ArtistName) |
+--------------------+
|                  3 |
+--------------------+

No entanto, se alterarmos a coluna para ucs2 , cada caractere será representado por um código Unicode de 2 bytes e, portanto, o resultado será diferente.

Para demonstrar, podemos alterar a tabela assim:
SELECT LENGTH(ArtistName) 
ALTER TABLE Artists 
MODIFY COLUMN ArtistName VARCHAR(255) CHARSET ucs2;

Agora, se consultarmos novamente:
SELECT LENGTH(ArtistName) 
FROM Artists
WHERE ArtistName = 'Lit';

Resultado:
+--------------------+
| LENGTH(ArtistName) |
+--------------------+
|                  6 |
+--------------------+

Brancos à direita


LENGTH() função conta os espaços em branco à direita (como espaços no final da string). Então, se adicionarmos um espaço ao final do primeiro exemplo, obteremos o seguinte resultado:
SELECT LENGTH('Lit');

Resultado:
+----------------+
| LENGTH('Lit ') |
+----------------+
|              4 |
+----------------+

Espaços em branco


Obtemos o mesmo resultado com espaços em branco à esquerda (por exemplo, espaços no início da string):
SELECT LENGTH(' Lit');

Resultado:
+----------------+
| LENGTH('Lit ') |
+----------------+
|              4 |
+----------------+

Transact-SQL (para SQL Server, Azure) tem uma função semelhante, mas em T-SQL é chamada de  DATALENGTH() .