sql >> Database >  >> RDS >> MariaDB

Hoe ORD() werkt in MariaDB

In MariaDB, ORD() is een ingebouwde tekenreeksfunctie die de numerieke tekencode van het meest linkse teken van het tekenreeksargument retourneert.

De ORD() functie kan multi-byte tekens aan. Dit in tegenstelling tot de ASCII() functie, die alleen tekens van één byte (8 bit) verwerkt.

Syntaxis

De syntaxis gaat als volgt:

ORD(str)

Waar str is het stringargument.

ORD() retourneert de numerieke code van alleen de meest linkse teken van deze tekenreeks.

Als het meest linkse teken een teken van meerdere bytes is, ORD() gebruikt de volgende formule om het resultaat te berekenen:

  (1st byte code)
+ (2nd byte code x 256)
+ (3rd byte code x 256 x 256) ...

Voorbeeld

Hier is een eenvoudig voorbeeld om te demonstreren:

SELECT ORD('H');

Resultaat:

+----------+
| ORD('H') |
+----------+
|       72 |
+----------+

Zoals vermeld, ORD() retourneert alleen de code van de meest linkse karakter. Daarom geeft het volgende hetzelfde resultaat:

SELECT ORD('Homer');

Resultaat:

+--------------+
| ORD('Homer') |
+--------------+
|           72 |
+--------------+

Laten we, om dit verder te demonstreren, de code van elke letter in de bovenstaande reeks halen:

SELECT 
    ORD('H'),
    ORD('o'),
    ORD('m'),
    ORD('e'),
    ORD('r');

Resultaat:

+----------+----------+----------+----------+----------+
| ORD('H') | ORD('o') | ORD('m') | ORD('e') | ORD('r') |
+----------+----------+----------+----------+----------+
|       72 |      111 |      109 |      101 |      114 |
+----------+----------+----------+----------+----------+

Multi-Byte-tekens

Hier is een voorbeeld dat een multibyte-teken gebruikt:

SELECT ORD('©');

Resultaat:

+-----------+
| ORD('©')  |
+-----------+
|     49833 |
+-----------+

Hoofdlettergevoeligheid

Hoofdletters hebben een andere ASCII-waarde dan hun kleine letters.

Voorbeeld:

SELECT 
    ORD('H'),
    ORD('h');

Resultaat:

+----------+----------+
| ORD('H') | ORD('h') |
+----------+----------+
|       72 |      104 |
+----------+----------+

Een databasevoorbeeld

Hier is een voorbeeld van het gebruik van ORD() in een databasequery:

USE PetHouse;
SELECT 
  PetName, 
  ORD(PetName) AS 'ASCII value of leftmost character'
FROM Pets;

Resultaat:

+---------+-----------------------------------+
| PetName | ASCII value of leftmost character |
+---------+-----------------------------------+
| Fluffy  |                                70 |
| Fetch   |                                70 |
| Scratch |                                83 |
| Wag     |                                87 |
| Tweet   |                                84 |
| Fluffy  |                                70 |
| Bark    |                                66 |
| Meow    |                                77 |
+---------+-----------------------------------+

Rechterste karakter

Hier gebruik ik de RIGHT() functie om het meest rechtse teken van elke koosnaam terug te geven, en gebruik het dan opnieuw met de ORD() functie om de ASCII-waarde voor dat teken te retourneren.

USE PetHouse;
SELECT 
  PetName,
  RIGHT(PetName, 1) 'Rightmost character',
  ORD(RIGHT(PetName, 1)) 'ASCII code'
FROM Pets;

Resultaat:

+---------+---------------------+------------+
| PetName | Rightmost character | ASCII code |
+---------+---------------------+------------+
| Fluffy  | y                   |        121 |
| Fetch   | h                   |        104 |
| Scratch | h                   |        104 |
| Wag     | g                   |        103 |
| Tweet   | t                   |        116 |
| Fluffy  | y                   |        121 |
| Bark    | k                   |        107 |
| Meow    | w                   |        119 |
+---------+---------------------+------------+

Lege snaren

Het verstrekken van een lege string resulteert in 0 wordt geretourneerd.

SELECT ORD('');

Resultaat:

+---------+
| ORD('') |
+---------+
|       0 |
+---------+

Null-waarden

null opgeven resulteert in null wordt geretourneerd.

SELECT ORD(null);

Resultaat:

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

  1. Galera Cluster Cloud-aanbiedingen vergelijken:deel drie Microsoft Azure

  2. Wat zijn databasebeperkingen?

  3. Meerdere rijen verwijderen met ID's?

  4. SQL Server *=Operator?