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)
Où 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 leORD()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
nulldonnenullêtre retourné.SELECT ORD(null);Résultat :
+-----------+| ORD(null) |+-----------+| NULL |+-----------+