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
0
zurückgegeben.SELECT ORD('');
Ergebnis:
+---------+| ORD('') |+---------+| 0 |+---------+Nullwerte
Bereitstellung von
null
ergibtnull
zurückgegeben.SELECT ORD(null);
Ergebnis:
+-----------+| ORD(null) |+-----------+| NULL |+-----------+