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

CHAR() Exemplos no MySQL


No MySQL, o CHAR() A função retorna o caractere para cada inteiro passado. Em outras palavras, você pode passar um ou mais inteiros, e a função irá interpretá-los como valores de código para caracteres de string e retornar a string correspondente para cada valor de código.


Sintaxe


A sintaxe fica assim:
CHAR(N,... [USING charset_name])

Onde N,... é um ou mais inteiros, e USING charset_name é um argumento opcional que você pode usar para especificar o conjunto de caracteres a ser usado.

Exemplo 1 – Uso básico


Aqui está um exemplo para demonstrar o uso básico:
SELECT CHAR(67, 97, 116);

Resultado:
+-------------------+
| CHAR(67, 97, 116) |
+-------------------+
| Cat               |
+-------------------+

Então, se alterarmos um dos inteiros, obteremos uma string diferente:
SELECT CHAR(66, 97, 116);

Resultado:
+-------------------+
| CHAR(66, 97, 116) |
+-------------------+
| Bat               |
+-------------------+

Exemplo 2 – A Cláusula USING


Aqui está um exemplo de como adicionar o USING cláusula para especificar a codificação UTF-8:
SELECT CHAR(0xc2a9 USING utf8);

Resultado:
+-------------------------+
| CHAR(0xc2a9 USING utf8) |
+-------------------------+
| ©                       |
+-------------------------+

E aqui está outro exemplo onde eu especifico o ponto de código unicode:
SELECT CHAR(0x027FE USING ucs2);

Resultado:
+--------------------------+
| CHAR(0x027FE USING ucs2) |
+--------------------------+
| ⟾                        |
+--------------------------+

Exemplo 3 – Bytes de resultados múltiplos


Argumentos maiores que 255 são convertidos em vários bytes de resultado. Aqui está um exemplo para demonstrar.
SELECT 
  HEX(CHAR(1,0)), 
  HEX(CHAR(256)),
  HEX(CHAR(1,1)), 
  HEX(CHAR(257));

Resultado:
+----------------+----------------+----------------+----------------+
| HEX(CHAR(1,0)) | HEX(CHAR(256)) | HEX(CHAR(1,1)) | HEX(CHAR(257)) |
+----------------+----------------+----------------+----------------+
| 0100           | 0100           | 0101           | 0101           |
+----------------+----------------+----------------+----------------+

E se aumentarmos os números:
SELECT 
  HEX(CHAR(7,0)), 
  HEX(CHAR(1792)),
  HEX(CHAR(7,7)), 
  HEX(CHAR(1799));

Resultado:
+----------------+-----------------+----------------+-----------------+
| HEX(CHAR(7,0)) | HEX(CHAR(1792)) | HEX(CHAR(7,7)) | HEX(CHAR(1799)) |
+----------------+-----------------+----------------+-----------------+
| 0700           | 0700            | 0707           | 0707            |
+----------------+-----------------+----------------+-----------------+