W MariaDB, ASCII()
to wbudowana funkcja łańcuchowa, która zwraca wartość numeryczną ASCII lewego skrajnego znaku argumentu łańcuchowego.
ASCII()
funkcja działa tylko na 8-bitowych znakach. Aby uzyskać kod dla znaków wielobajtowych, użyj ORD()
zamiast tego.
Składnia
Składnia wygląda tak:
ASCII(str)
Gdzie str
jest argumentem łańcuchowym.
ASCII()
zwróci wartość liczbową ASCII tylko lewego znak tego ciągu.
Przykład
Oto prosty przykład do zademonstrowania:
SELECT ASCII('Maria');
Wynik:
+----------------+ | ASCII('Maria') | +----------------+ | 77 | +----------------+
To mówi nam, że wielka litera M
ma wartość numeryczną ASCII 77
.
Jak wspomniano, ASCII()
zwraca tylko wartość ASCII lewej postać. Dlatego poniższe daje ten sam wynik:
SELECT ASCII('M');
Wynik:
+------------+ | ASCII('M') | +------------+ | 77 | +------------+
Aby to dalej zademonstrować, weźmy liczbową wartość ASCII z każdej litery w powyższym ciągu:
SELECT
ASCII('M'),
ASCII('a'),
ASCII('r'),
ASCII('i'),
ASCII('a');
Wynik:
+------------+------------+------------+------------+------------+ | ASCII('M') | ASCII('a') | ASCII('r') | ASCII('i') | ASCII('a') | +------------+------------+------------+------------+------------+ | 77 | 97 | 114 | 105 | 97 | +------------+------------+------------+------------+------------+
Wrażliwość na wielkość liter
Wielkie litery mają inną wartość ASCII niż ich małe odpowiedniki.
Przykład:
SELECT
ASCII('M'),
ASCII('m');
Wynik:
+------------+------------+ | ASCII('M') | ASCII('m') | +------------+------------+ | 77 | 109 | +------------+------------+
Przykład bazy danych
Oto przykład użycia ASCII()
w zapytaniu do bazy danych:
USE PetHouse;
SELECT
PetName,
ASCII(PetName) AS 'ASCII value of leftmost character'
FROM Pets;
Wynik:
+---------+-----------------------------------+ | PetName | ASCII value of leftmost character | +---------+-----------------------------------+ | Fluffy | 70 | | Fetch | 70 | | Scratch | 83 | | Wag | 87 | | Tweet | 84 | | Fluffy | 70 | | Bark | 66 | | Meow | 77 | +---------+-----------------------------------+
Postać z prawej strony
Tutaj używam RIGHT()
funkcja zwracająca skrajny prawy znak z każdego imienia zwierzaka, a następnie użyj go ponownie z ASCII()
funkcja zwracająca wartość ASCII dla tego znaku.
USE PetHouse;
SELECT
PetName,
RIGHT(PetName, 1) 'Rightmost character',
ASCII(RIGHT(PetName, 1)) 'ASCII code'
FROM Pets;
Wynik:
+---------+---------------------+------------+ | 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 | +---------+---------------------+------------+
Puste ciągi
Dostarczenie pustego ciągu daje w wyniku 0
zostanie zwrócony.
SELECT ASCII('');
Wynik:
+-----------+ | ASCII('') | +-----------+ | 0 | +-----------+
Wartości puste
Podanie null
wyniki w null
zostanie zwrócony.
SELECT ASCII(null);
Wynik:
+-------------+ | ASCII(null) | +-------------+ | NULL | +-------------+