I MariaDB, ORD() er en indbygget strengfunktion, der returnerer den numeriske tegnkode for tegnet længst til venstre i dets strengargument.
ORD() funktion kan håndtere multi-byte tegn. Dette er i modsætning til ASCII() funktion, som kun håndterer enkelt-byte (8 bit) tegn.
Syntaks
Syntaksen ser sådan ud:
ORD(str)
Hvor str er strengargumentet.
ORD() returnerer kun den numeriske kode for længst til venstre karakter af denne streng.
Hvis tegnet længst til venstre er et multi-byte tegn, ORD() bruger følgende formel til at beregne resultatet:
(1st byte code)
+ (2nd byte code x 256)
+ (3rd byte code x 256 x 256) ... Eksempel
Her er et simpelt eksempel til at demonstrere:
SELECT ORD('H'); Resultat:
+----------+| ORD('H') |+----------+| 72 |+----------+
Som nævnt, ORD() returnerer kun koden for længst til venstre Karakter. Følgende giver derfor det samme resultat:
SELECT ORD('Homer'); Resultat:
+--------------+| ORD('Homer') |+--------------+| 72 |+--------------+ For at demonstrere dette yderligere, lad os få koden fra hvert bogstav i ovenstående streng:
SELECT
ORD('H'),
ORD('o'),
ORD('m'),
ORD('e'),
ORD('r'); Resultat:
+-----------+---------------------- --------+| ORD('H') | ORD('o') | ORD('m') | ORD('e') | ORD('r') |+------+----------------- --+--------+| 72 | 111 | 109 | 101 | 114 |+----------------------------- -------+ Multi-Byte-tegn
Her er et eksempel, der bruger et multi-byte tegn:
SELECT ORD('©'); Resultat:
+------------+| ORD('©') |+-----------+| 49833 |+------------+ Skrivar og bogstaver
Store bogstaver har en anden ASCII-værdi end deres små bogstaver.
Eksempel:
SELECT
ORD('H'),
ORD('h'); Resultat:
+----------+--------+| ORD('H') | ORD('h') |+----------+----------+| 72 | 104 |+----------+----------+ Et databaseeksempel
Her er et eksempel på brug af ORD() i en databaseforespørgsel:
USE PetHouse;
SELECT
PetName,
ORD(PetName) AS 'ASCII value of leftmost character'
FROM Pets; Resultat:
+--------+-------------------------------------------+ | Kæledyrsnavn | ASCII-værdi for tegn længst til venstre |+---------+---------------------------------------- --+| Fluffy | 70 || Hent | 70 || Ridse | 83 || Wag | 87 || Tweet | 84 || Fluffy | 70 || Bark | 66 || Mjav | 77 |+---------+--------------------------------------------+
Lyst til højre
Her bruger jeg RIGHT() funktion til at returnere tegnet længst til højre fra hvert kæledyrsnavn og derefter bruge det igen med ORD() funktion for at returnere ASCII-værdien for det pågældende tegn.
USE PetHouse;
SELECT
PetName,
RIGHT(PetName, 1) 'Rightmost character',
ORD(RIGHT(PetName, 1)) 'ASCII code'
FROM Pets; Resultat:
+--------+---------------------+-----------+| Kæledyrsnavn | Tegn længst til højre | ASCII-kode |+--------+----------------------+-----------+| Fluffy | y | 121 || Hent | h | 104 || Ridse | h | 104 || Wag | g | 103 || Tweet | t | 116 || Fluffy | y | 121 || Bark | k | 107 || Mjav | w | 119 |+--------+----------------------+-----------+Tomme strenge
Angivelse af en tom streng resulterer i
0bliver returneret.SELECT ORD('');Resultat:
+--------+| ORD('') |+--------+| 0 |+---------+Nul-værdier
Giver
nullresulterer inullbliver returneret.SELECT ORD(null);Resultat:
+------------+| ORD(null) |+------------+| NULL |+------------+