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 oRIGHT()
função para retornar o caractere mais à direita de cada nome de animal de estimação e usá-lo novamente com oORD()
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 em0
sendo devolvido.
SELECT ORD('');
Resultado:
+---------+| ORD('') |+---------+| 0 |+---------+Valores nulos
Fornecendonull
resulta emnull
sendo devolvido.
SELECT ORD(null);
Resultado:
+-----------+| ORD(nulo) |+-----------+| NULL |+-----------+