Função MySQL LENGTH()

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 Maxlencoluna 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 latin1como 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 latin1conjunto de caracteres.

2) Exemplo de conjunto de caracteres multibyte

O exemplo a seguir usa o LENGTH()para obter o comprimento da string Cafée latin1os utf8mb3conjuntos 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *