sql >> Databáze >  >> RDS >> MariaDB

Jak funguje ORD() v MariaDB

V MariaDB, ORD() je vestavěná řetězcová funkce, která vrací číselný kód znaku úplně vlevo v argumentu řetězce.

ORD() funkce zvládne vícebajtové znaky. To je v kontrastu s ASCII() funkce, která zpracovává pouze jednobajtové (8 bitové) znaky.

Syntaxe

Syntaxe vypadá takto:

ORD(str) 

Kde str je argument řetězce.

ORD() vrátí číselný kód pouze zcela vlevo znak tohoto řetězce.

Pokud je znak zcela vlevo vícebajtový znak, ORD() používá k výpočtu výsledku následující vzorec:

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

Příklad

Zde je jednoduchý příklad k demonstraci:

SELECT ORD('H'); 

Výsledek:

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

Jak již bylo zmíněno, ORD() vrátí pouze kód zcela vlevo charakter. Proto následující způsobí stejný výsledek:

SELECT ORD('Homer'); 

Výsledek:

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

Abychom to dále demonstrovali, získáme kód z každého písmene ve výše uvedeném řetězci:

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

Výsledek:

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

Vícebajtové znaky

Zde je příklad, který používá vícebajtový znak:

SELECT ORD('©'); 

Výsledek:

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

Rozlišovat malá a velká písmena

Velká písmena mají jinou hodnotu ASCII než jejich malé ekvivalenty.

Příklad:

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

Výsledek:

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

Příklad databáze

Zde je příklad použití ORD() v databázovém dotazu:

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

Výsledek:

+---------+-----------------------------------+ | Jméno mazlíčka | Hodnota ASCII znaku zcela vlevo |+---------+--------------------------------- --+| Načechraný | 70 || Načíst | 70 || Škrábnout | 83 || Wag | 87 || Tweet | 84 || Načechraný | 70 || Kůra | 66 || Mňau | 77 |+---------+-----------------------------------+ 

Znak zcela vpravo

Zde používám RIGHT() funkce vrátí znak úplně vpravo z každého jména mazlíčka a poté jej znovu použije s ORD() funkce vrátí hodnotu ASCII pro daný znak.

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

Výsledek:

+---------+---------------------+------------+| Jméno mazlíčka | Znak zcela vpravo | ASCII kód ​​|+---------+---------------------+------------+| Načechraný | y | 121 || Načíst | h | 104 || Škrábnout | h | 104 || Wag | g | 103 || Tweet | t | 116 || Načechraný | y | 121 || Kůra | k | 107 || Mňau | w | 119 |+---------+---------------------+------------+ 

Prázdné řetězce

Poskytnutí prázdného řetězce má za následek 0 se vrací.

SELECT ORD(''); 

Výsledek:

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

Nulové hodnoty

Poskytování null výsledkem je null se vrací.

SELECT ORD(null); 

Výsledek:

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

  1. Návrh databáze:jeden velký stůl nebo samostatné tabulky?

  2. Instalace ukázek databáze AdventureWorks na Microsoft SQL Server 2012

  3. Pokročilé převzetí služeb při selhání pomocí háčků Post/Pre Script

  4. JSON_EXTRACT() – Vrácení dat z dokumentu JSON v MySQL