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.