In MariaDB ORD() ist eine eingebaute Zeichenfolgenfunktion, die den numerischen Zeichencode des Zeichens ganz links ihres Zeichenfolgenarguments zurückgibt.
Das ORD() Die Funktion kann Multibyte-Zeichen verarbeiten. Dies steht im Gegensatz zu ASCII() Funktion, die nur Single-Byte-Zeichen (8 Bit) verarbeitet.
Syntax
Die Syntax lautet wie folgt:
ORD(str)
Wobei str ist das String-Argument.
ORD() gibt nur den numerischen Code von ganz links zurück Zeichen dieser Zeichenfolge.
Wenn das Zeichen ganz links ein Multibyte-Zeichen ist, ORD() verwendet die folgende Formel, um das Ergebnis zu berechnen:
(1st byte code)
+ (2nd byte code x 256)
+ (3rd byte code x 256 x 256) ... Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung:
SELECT ORD('H'); Ergebnis:
+----------+| ORD('H') |+----------+| 72 |+----------+
Wie bereits erwähnt, ORD() gibt nur den Code von ganz links zurück Charakter. Daher führt Folgendes zum selben Ergebnis:
SELECT ORD('Homer'); Ergebnis:
+--------------+| ORD('Homer') |+--------------+| 72 |+--------------+ Um dies weiter zu demonstrieren, holen wir uns den Code von jedem Buchstaben in der obigen Zeichenfolge:
SELECT
ORD('H'),
ORD('o'),
ORD('m'),
ORD('e'),
ORD('r'); Ergebnis:
+----------+----------+----------+----------+-- --------+| ORD('H') | ORD('o') | ORD('m') | ORD('e') | ORD('r') |+----------+----------+----------+--------- -+----------+| 72 | 111 | 109 | 101 | 114 |+----------+----------+----------+----------+--- -------+ Multibyte-Zeichen
Hier ist ein Beispiel, das ein Multibyte-Zeichen verwendet:
SELECT ORD('©'); Ergebnis:
+-----------+| ORD('©') |+-----------+| 49833 |+-----------+ Groß-/Kleinschreibung
Großbuchstaben haben einen anderen ASCII-Wert als ihre Kleinbuchstaben.
Beispiel:
SELECT
ORD('H'),
ORD('h'); Ergebnis:
+----------+----------+| ORD('H') | ORD('h') |+----------+----------+| 72 | 104 |+----------+----------+ Ein Datenbankbeispiel
Hier ist ein Beispiel für die Verwendung von ORD() in einer Datenbankabfrage:
USE PetHouse;
SELECT
PetName,
ORD(PetName) AS 'ASCII value of leftmost character'
FROM Pets; Ergebnis:
+---------+-----------------------------------+ | Haustiername | ASCII-Wert des Zeichens ganz links |+---------+--------------------------------- --+| Flauschig | 70 || Holen | 70 || Kratzer | 83 || Wackeln | 87 || Twittern | 84 || Flauschig | 70 || Rinde | 66 || Miau | 77 |+---------+-----------------------------------+
Zeichen ganz rechts
Hier verwende ich das RIGHT() Funktion, um das Zeichen ganz rechts von jedem Haustiernamen zurückzugeben, und verwenden Sie es dann erneut mit ORD() Funktion, um den ASCII-Wert für dieses Zeichen zurückzugeben.
USE PetHouse;
SELECT
PetName,
RIGHT(PetName, 1) 'Rightmost character',
ORD(RIGHT(PetName, 1)) 'ASCII code'
FROM Pets; Ergebnis:
+---------+---------------------+------------+| Haustiername | Zeichen ganz rechts | ASCII-Code |+---------+---------------------+------------+| Flauschig | y | 121 || Holen | h | 104 || Kratzer | h | 104 || Wackeln | g | 103 || Twittern | t | 116 || Flauschig | y | 121 || Rinde | k | 107 || Miau | w | 119 |+---------+---------------------+------------+Leere Zeichenfolgen
Die Bereitstellung einer leeren Zeichenfolge führt zu
0zurückgegeben.SELECT ORD('');Ergebnis:
+---------+| ORD('') |+---------+| 0 |+---------+Nullwerte
Bereitstellung von
nullergibtnullzurückgegeben.SELECT ORD(null);Ergebnis:
+-----------+| ORD(null) |+-----------+| NULL |+-----------+