MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como ORD() funciona no MariaDB


No MariaDB, ORD() é uma função de string interna que retorna o código de caractere numérico do caractere mais à esquerda de seu argumento de string.

O ORD() função pode lidar com caracteres de vários bytes. Isso contrasta com o ASCII() função, que lida apenas com caracteres de byte único (8 bits).

Sintaxe


A sintaxe fica assim:
ORD(str) 

Onde str é o argumento string.

ORD() retornará o código numérico apenas do mais à esquerda caractere desta string.

Se o caractere mais à esquerda for um caractere de vários bytes, ORD() usa a seguinte fórmula para calcular seu resultado:
  (1st byte code)
+ (2nd byte code x 256)
+ (3rd byte code x 256 x 256) ... 

Exemplo


Aqui está um exemplo simples para demonstrar:
SELECT ORD('H'); 

Resultado:
+----------+| ORD('H') |+----------+| 72 |+----------+

Como mencionado, ORD() retorna apenas o código do mais à esquerda personagem. Portanto, o seguinte produz o mesmo resultado:
SELECT ORD('Homer'); 

Resultado:
+--------------+| ORD('Homer') |+--------------+| 72 |+--------------+

Para demonstrar isso ainda mais, vamos obter o código de cada letra na string acima:
SELECT 
    ORD('H'),
    ORD('o'),
    ORD('m'),
    ORD('e'),
    ORD('r'); 

Resultado:
+----------+----------+----------+----------+-- --------+| ORD('H') | ORD('o') | ORD('m') | ORD('e') | ORD('r') |+----------+----------+----------+--------- -+----------+| 72 | 111 | 109 | 101 | 114 |+----------+----------+----------+----------+--- -------+

Caracteres de vários bytes


Aqui está um exemplo que usa um caractere de vários bytes:
SELECT ORD('©'); 

Resultado:
+-----------+| ORD('©') |+-----------+| 49833 |+-----------+

Sensibilidade de maiúsculas e minúsculas


Letras maiúsculas têm um valor ASCII diferente de seus equivalentes minúsculos.

Exemplo:
SELECT 
    ORD('H'),
    ORD('h'); 

Resultado:
+----------+----------+| ORD('H') | ORD('h') |+----------+----------+| 72 | 104 |+----------+----------+

Um exemplo de banco de dados


Aqui está um exemplo de uso de ORD() em uma consulta de banco de dados:
USE PetHouse;
SELECT 
  PetName, 
  ORD(PetName) AS 'ASCII value of leftmost character'
FROM Pets; 

Resultado:
+---------+-----------------------------------+ | PetName | Valor ASCII do caractere mais à esquerda |+---------+--------------------------------- --+| Fofo | 70 || Buscar | 70 || Raspe | 83 || Wag | 87 || Tweet | 84 || Fofo | 70 || Casca | 66 || Miau | 77 |+---------+-----------------------------------+ 

Caractere mais à direita


Aqui, eu uso o RIGHT() função para retornar o caractere mais à direita de cada nome de animal de estimação e usá-lo novamente com o ORD() função para retornar o valor ASCII para esse caractere.
USE PetHouse;
SELECT 
  PetName,
  RIGHT(PetName, 1) 'Rightmost character',
  ORD(RIGHT(PetName, 1)) 'ASCII code'
FROM Pets; 

Resultado:
+---------+---------------------+------------+| PetName | Caractere mais à direita | Código ASCII |+---------+---------------------+------------+| Fofo | e | 121 || Buscar | h | 104 || Raspe | h | 104 || Wag | g | 103 || Tweet | t | 116 || Fofo | e | 121 || Casca | k | 107 || Miau | w | 119 |+---------+---------------------+------------+ 

Strings vazias


Fornecer uma string vazia resulta em 0 sendo devolvido.
SELECT ORD(''); 

Resultado:
+---------+| ORD('') |+---------+| 0 |+---------+

Valores nulos


Fornecendo null resulta em null sendo devolvido.
SELECT ORD(null); 

Resultado:
+-----------+| ORD(nulo) |+-----------+| NULL |+-----------+