В MariaDB, ORD()
е вградена низова функция, която връща цифровия символен код на най-левия знак на неговия низ аргумент.
ORD()
функцията може да обработва многобайтови знаци. Това е в контраст с ASCII()
функция, която обработва само еднобайтови (8-битови) символи.
Синтаксис
Синтаксисът е така:
ORD(str)
Където str
е аргументът низ.
ORD()
ще върне цифровия код само на най-лявата символ на този низ.
Ако най-левият знак е многобайтов знак, ORD()
използва следната формула, за да изчисли резултата си:
(1st byte code)
+ (2nd byte code x 256)
+ (3rd byte code x 256 x 256) ...
Пример
Ето един прост пример за демонстрация:
SELECT ORD('H');
Резултат:
+---------+| ORD('H') |+----------+| 72 |+---------+
Както споменахме, ORD()
връща само кода на най-лявата характер. Следователно, следното дава същия резултат:
SELECT ORD('Homer');
Резултат:
+--------------+| ORD('Homer') |+--------------+| 72 |+--------------+
За да демонстрираме това допълнително, нека вземем кода от всяка буква в горния низ:
SELECT
ORD('H'),
ORD('o'),
ORD('m'),
ORD('e'),
ORD('r');
Резултат:
+----------+-----------+---------+----------+-- --------+| ORD('H') | ORD('o') | ORD('m') | ORD('e') | ORD('r') |+----------+---------+----------+--------- -+----------+| 72 | 111 | 109 | 101 | 114 |+----------+-----------+----------+---------+--- -------+
Многобайтови символи
Ето пример, който използва многобайтов знак:
SELECT ORD('©');
Резултат:
+-----------+| ORD('©') |+-----------+| 49833 |+----------+
Чувствителност на регистрите
Главните букви имат различна ASCII стойност от техните еквиваленти с малки букви.
Пример:
SELECT
ORD('H'),
ORD('h');
Резултат:
+----------+----------+| ORD('H') | ORD('h') |+----------+---------+| 72 | 104 |+----------+----------+
Пример за база данни
Ето пример за използване на ORD()
в заявка към база данни:
USE PetHouse;
SELECT
PetName,
ORD(PetName) AS 'ASCII value of leftmost character'
FROM Pets;
Резултат:
+--------+-----------------------------------+ | Име на домашни любимци | ASCII стойност на най-левия знак |+--------+-------------------------------- --+| Пухкави | 70 || Вземи | 70 || Надраскване | 83 || Размахване | 87 || Tweet | 84 || Пухкави | 70 || Кора | 66 || Мяу | 77 |+--------+-----------------------------------+предварително>Най-десният знак
Тук използвам
RIGHT()
функция за връщане на най-десния знак от всяко име на домашен любимец и след това го използвайте отново сORD()
функция за връщане на ASCII стойността за този знак.USE PetHouse; SELECT PetName, RIGHT(PetName, 1) 'Rightmost character', ORD(RIGHT(PetName, 1)) 'ASCII code' FROM Pets;
Резултат:
+--------+---------------------+-----------+| Име на домашни любимци | Най-десният знак | ASCII код |+--------+---------------------+-----------+| Пухкави | y | 121 || Вземи | ч | 104 || Надраскване | ч | 104 || Размахване | g | 103 || Tweet | t | 116 || Пухкави | y | 121 || Кора | k | 107 || Мяу | w | 119 |+--------+---------------------+-----------+предварително>Празни низове
Предоставянето на празен низ води до
0
се връща.SELECT ORD('');
Резултат:
+--------+| ORD('') |+--------+| 0 |+---------+Нулеви стойности
Предоставяне на
null
води доnull
се връща.SELECT ORD(null);
Резултат:
+-----------+| ORD(нула) |+-----------+| NULL |+-----------+