Resumo : neste tutorial, você aprenderá sobre a LENGTH()
função MySQL para obter o comprimento de strings em bytes.
Introdução à função MySQL LENGTH()
A LENGTH()
função retorna o comprimento de uma string medida em bytes.
Aqui está a sintaxe básica da LENGTH()
função:
LENGTH(string)
A função LENGTH() recebe um argumento de string e retorna seu comprimento medido em bytes. Portanto, o resultado da LENGTH()
função é baseado no conjunto de caracteres atual do arquivo string
.
Observe que para obter o número de caracteres de uma string, você usa a CHAR_LENGTH()
função.
Compreendendo conjuntos de caracteres
Conjuntos de caracteres definem como o MySQL armazena e representa caracteres em um banco de dados. MySQL suporta vários conjuntos de caracteres, incluindo conjuntos de caracteres de byte único e multibyte.
Em um conjunto de caracteres de byte único, o MySQL representa cada caractere usando um único byte. Para esses conjuntos de caracteres, o comprimento de uma string em caracteres é igual ao seu comprimento em bytes.
Em conjuntos de caracteres multibyte, como UTF-8, o MySQL representa caracteres usando múltiplos bytes. Nesses casos, o comprimento de uma string em caracteres pode ser diferente do seu comprimento em bytes.
Para localizar conjuntos de caracteres disponíveis no banco de dados atual, use a seguinte instrução:
SHOW CHARACTER SET;
Saída:
+----------+---------------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+---------------------------------+---------------------+--------+
| armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 |
| ascii | US ASCII | ascii_general_ci | 1 |
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
| binary | Binary pseudo charset | binary | 1 |
...
Linguagem de código: PHP ( php )
Na saída, a Maxlen
coluna mostra o número máximo de bytes para cada caractere.
Para encontrar o conjunto de caracteres que o banco de dados atual usa, você usa a variável @@character_set_database:
SELECT @@character_set_database;
Linguagem de código: CSS ( css )
Saída:
+--------------------------+
| @@character_set_database |
+--------------------------+
| latin1 |
+--------------------------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
Para o restante do tutorial, presumimos que você use o latin1
como conjunto de caracteres padrão.
Exemplos de funções MySQL LENGTH
Vejamos alguns exemplos de uso da LENGTH()
função.
1) Exemplo de conjunto de caracteres de byte único
O exemplo a seguir usa a LENGTH()
função para retornar o comprimento de uma string no conjunto de caracteres Latin1:
SELECT LENGTH('Hello') as length;
Linguagem de código: JavaScript ( javascript )
Saída:
+--------+
| length |
+--------+
| 5 |
+--------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
A consulta retorna 5 porque a string 'Hello'
contém cinco caracteres e cada caractere é representado usando um único byte no latin1
conjunto de caracteres.
2) Exemplo de conjunto de caracteres multibyte
O exemplo a seguir usa o LENGTH()
para obter o comprimento da string Café
e latin1
os utf8mb3
conjuntos de caracteres:
SELECT
LENGTH('Café') length_latin1,
LENGTH(
CONVERT('Café' USING utf8mb3)
) length_utf8;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+---------------+-------------+
| length_latin1 | length_utf8 |
+---------------+-------------+
| 4 | 5 |
+---------------+-------------+
1 row in set, 1 warning (0.00 sec)
Linguagem de código: JavaScript ( javascript )
Neste exemplo:
- A primeira
LENGTH()
função retorna 4 porque latin1 representa cada caractere usando 1 byte. - A segunda
LENGTH()
função retorna 5 porque utf8mb3 usa um byte para representar os três primeiros caracteres (caf
) dois bytes para representar o último caractere (é
).
Resumo
- Use a função MySQL
LENGTH()
para obter o comprimento de uma string em bytes.