MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment ORD () fonctionne dans MariaDB

Dans MariaDB, ORD() est une fonction de chaîne intégrée qui renvoie le code de caractère numérique du caractère le plus à gauche de son argument de chaîne.

Le ORD() La fonction peut gérer des caractères multi-octets. Ceci est en contraste avec le ASCII() fonction, qui ne gère que les caractères à un octet (8 bits).

Syntaxe

La syntaxe ressemble à ceci :

ORD(str) 

str est l'argument de la chaîne.

ORD() renverra le code numérique du seul le plus à gauche caractère de cette chaîne.

Si le caractère le plus à gauche est un caractère multi-octets, ORD() utilise la formule suivante pour calculer son résultat :

  (1st byte code)
+ (2nd byte code x 256)
+ (3rd byte code x 256 x 256) ... 

Exemple

Voici un exemple simple pour illustrer :

SELECT ORD('H'); 

Résultat :

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

Comme mentionné, ORD() ne renvoie que le code du plus à gauche personnage. Par conséquent, ce qui suit produit le même résultat :

SELECT ORD('Homer'); 

Résultat :

+--------------+| ORD('Homère') |+--------------+| 72 |+--------------+

Pour illustrer cela davantage, récupérons le code de chaque lettre de la chaîne ci-dessus :

SELECT 
    ORD('H'),
    ORD('o'),
    ORD('m'),
    ORD('e'),
    ORD('r'); 

Résultat :

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

Caractères multi-octets

Voici un exemple qui utilise un caractère multi-octet :

SELECT ORD('©'); 

Résultat :

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

Sensibilité à la casse

Les lettres majuscules ont une valeur ASCII différente de leurs équivalents minuscules.

Exemple :

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

Résultat :

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

Un exemple de base de données

Voici un exemple d'utilisation de ORD() dans une requête de base de données :

USE PetHouse;
SELECT 
  PetName, 
  ORD(PetName) AS 'ASCII value of leftmost character'
FROM Pets; 

Résultat :

+---------+-----------------------------------+ | NomAnimal | Valeur ASCII du caractère le plus à gauche |+--------+--------------------------------- --+| Moelleux | 70 || Récupérer | 70 || gratter | 83 || remuer | 87 || Tweeter | 84 || Moelleux | 70 || Écorce | 66 || Miaou | 77 |+---------+-----------------------------------+ 

Caractère le plus à droite

Ici, j'utilise le RIGHT() fonction pour renvoyer le caractère le plus à droite de chaque nom d'animal, puis l'utiliser à nouveau avec le ORD() fonction pour renvoyer la valeur ASCII pour ce caractère.

USE PetHouse;
SELECT 
  PetName,
  RIGHT(PetName, 1) 'Rightmost character',
  ORD(RIGHT(PetName, 1)) 'ASCII code'
FROM Pets; 

Résultat :

+---------+---------------------+------------+| NomAnimal | Caractère le plus à droite | Code ASCII |+---------+---------------------+------------+| Moelleux | y | 121 || Récupérer | h | 104 || gratter | h | 104 || remuer | g | 103 || Tweeter | t | 116 || Moelleux | y | 121 || Écorce | k | 107 || Miaou | w | 119 |+---------+---------------------+------------+ 

Chaînes vides

Fournir une chaîne vide donne 0 être retourné.

SELECT ORD(''); 

Résultat :

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

Valeurs nulles

Fournir null donne null être retourné.

SELECT ORD(null); 

Résultat :

+-----------+| ORD(null) |+-----------+| NULL |+-----------+