MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie ORD() in MariaDB funktioniert

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 ergibt null zurückgegeben.

SELECT ORD(null); 

Ergebnis:

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