MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak ORD() działa w MariaDB

W MariaDB, ORD() jest wbudowaną funkcją łańcuchową, która zwraca numeryczny kod znaku skrajnego lewego znaku argumentu łańcuchowego.

ORD() funkcja może obsługiwać znaki wielobajtowe. Jest to w przeciwieństwie do ASCII() funkcja, która obsługuje tylko znaki jednobajtowe (8-bitowe).

Składnia

Składnia wygląda tak:

ORD(str)

Gdzie str jest argumentem łańcuchowym.

ORD() zwróci kod numeryczny tylko lewej znak tego ciągu.

Jeśli skrajny lewy znak jest znakiem wielobajtowym, ORD() używa następującego wzoru do obliczenia wyniku:

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

Przykład

Oto prosty przykład do zademonstrowania:

SELECT ORD('H');

Wynik:

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

Jak wspomniano, ORD() zwraca tylko kod lewej postać. Dlatego poniższe daje ten sam wynik:

SELECT ORD('Homer');

Wynik:

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

Aby to dokładniej zademonstrować, pobierzmy kod z każdej litery w powyższym ciągu:

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

Wynik:

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

Znaki wielobajtowe

Oto przykład, który używa znaku wielobajtowego:

SELECT ORD('©');

Wynik:

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

Wrażliwość na wielkość liter

Wielkie litery mają inną wartość ASCII niż ich małe odpowiedniki.

Przykład:

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

Wynik:

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

Przykład bazy danych

Oto przykład użycia ORD() w zapytaniu do bazy danych:

USE PetHouse;
SELECT 
  PetName, 
  ORD(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, aby zwrócić znak z prawej strony każdego imienia zwierzaka, a następnie użyć go ponownie z ORD() funkcja zwracająca wartość ASCII dla tego znaku.

USE PetHouse;
SELECT 
  PetName,
  RIGHT(PetName, 1) 'Rightmost character',
  ORD(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 ORD('');

Wynik:

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

Wartości puste

Podanie null wyniki w null zostanie zwrócony.

SELECT ORD(null);

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak TO_SECONDS() działa w MariaDB?

  2. MariaDB JSON_DETAILED() Objaśnienie

  3. Jak MONTHNAME() działa w MariaDB

  4. Jak REGEXP działa w MariaDB

  5. Konfigurowanie klastra rozproszonej bazy danych przy użyciu replikacji MySQL