sql >> Databasteknik >  >> RDS >> MariaDB

Hur ORD() fungerar i MariaDB

I MariaDB, ORD() är en inbyggd strängfunktion som returnerar den numeriska teckenkoden för tecknet längst till vänster i dess strängargument.

ORD() funktion kan hantera tecken med flera byte. Detta är i motsats till ASCII() funktion, som bara hanterar enkelbyte (8 bitars) tecken.

Syntax

Syntaxen ser ut så här:

ORD(str) 

Där str är strängargumentet.

ORD() returnerar den numeriska koden för endast den längst till vänster tecken i denna sträng.

Om tecknet längst till vänster är ett tecken med flera byte, ORD() använder följande formel för att beräkna resultatet:

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

Exempel

Här är ett enkelt exempel att visa:

SELECT ORD('H'); 

Resultat:

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

Som nämnts, ORD() returnerar bara koden för den längst till vänster karaktär. Följande ger därför samma resultat:

SELECT ORD('Homer'); 

Resultat:

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

För att demonstrera detta ytterligare, låt oss hämta koden från varje bokstav i ovanstående sträng:

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

Resultat:

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

Multi-Byte-tecken

Här är ett exempel som använder ett flerbytetecken:

SELECT ORD('©'); 

Resultat:

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

Skaftkänslighet

Versaler har ett annat ASCII-värde än sina gemener.

Exempel:

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

Resultat:

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

Ett databasexempel

Här är ett exempel på hur du använder ORD() i en databasfråga:

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

Resultat:

+--------+------------------------------------------+ | PetName | ASCII-värde för tecknet längst till vänster |+---------+---------------------------------------- --+| Fluffig | 70 || Hämta | 70 || Skrapa | 83 || Wag | 87 || Tweet | 84 || Fluffig | 70 || Bark | 66 || Mjau | 77 |+---------+--------------------------------------------+

Tecken längst till höger

Här använder jag RIGHT() funktion för att returnera tecknet längst till höger från varje husdjursnamn och använd det sedan igen med ORD() funktion för att returnera ASCII-värdet för det tecknet.

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

Resultat:

+--------+---------------------+-----------+| PetName | Tecken längst till höger | ASCII-kod |+---------+---------------------+------------+| Fluffig | y | 121 || Hämta | h | 104 || Skrapa | h | 104 || Wag | g | 103 || Tweet | t | 116 || Fluffig | y | 121 || Bark | k | 107 || Mjau | w | 119 |+--------+---------------------+-----------+ 

Tömma strängar

Att tillhandahålla en tom sträng resulterar i 0 returneras.

SELECT ORD(''); 

Resultat:

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

Nullvärden

Tillhandahåller null resulterar i null returneras.

SELECT ORD(null); 

Resultat:

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

  1. Skapa en webbplats med MySQL

  2. Vad är poängen med Initial Catalog i en SQL Server-anslutningssträng?

  3. Installera Oracle Client från kommandoraden utan användarinteraktion

  4. Hur man skickar en POST-förfrågan med formulärdata och parametrar i PL/SQL