MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona ASCII() in MariaDB

In MariaDB, ASCII() è una funzione stringa incorporata che restituisce il valore numerico ASCII del carattere più a sinistra del suo argomento stringa.

Il ASCII() la funzione funziona solo su caratteri a 8 bit. Per ottenere il codice per i caratteri multibyte, usa ORD() funzione invece.

Sintassi

La sintassi è questa:

ASCII(str)

Dove str è l'argomento stringa.

ASCII() restituirà il valore numerico ASCII solo dell'più a sinistra carattere di questa stringa.

Esempio

Ecco un semplice esempio da dimostrare:

SELECT ASCII('Maria');

Risultato:

+----------------+
| ASCII('Maria') |
+----------------+
|             77 |
+----------------+

Questo ci dice che la lettera maiuscola M ha il valore numerico ASCII di 77 .

Come accennato, ASCII() restituisce solo il valore ASCII dell'più a sinistra carattere. Pertanto, quanto segue produce lo stesso risultato:

SELECT ASCII('M');

Risultato:

+------------+
| ASCII('M') |
+------------+
|         77 |
+------------+

Per dimostrarlo ulteriormente, otteniamo il valore numerico ASCII da ciascuna lettera nella stringa sopra:

SELECT 
    ASCII('M'),
    ASCII('a'),
    ASCII('r'),
    ASCII('i'),
    ASCII('a');

Risultato:

+------------+------------+------------+------------+------------+
| ASCII('M') | ASCII('a') | ASCII('r') | ASCII('i') | ASCII('a') |
+------------+------------+------------+------------+------------+
|         77 |         97 |        114 |        105 |         97 |
+------------+------------+------------+------------+------------+

Maiuscole/minuscole

Le lettere maiuscole hanno un valore ASCII diverso dai loro equivalenti minuscoli.

Esempio:

SELECT 
    ASCII('M'),
    ASCII('m');

Risultato:

+------------+------------+
| ASCII('M') | ASCII('m') |
+------------+------------+
|         77 |        109 |
+------------+------------+

Un esempio di database

Ecco un esempio di utilizzo di ASCII() in una query di database:

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

Risultato:

+---------+-----------------------------------+
| PetName | ASCII value of leftmost character |
+---------+-----------------------------------+
| Fluffy  |                                70 |
| Fetch   |                                70 |
| Scratch |                                83 |
| Wag     |                                87 |
| Tweet   |                                84 |
| Fluffy  |                                70 |
| Bark    |                                66 |
| Meow    |                                77 |
+---------+-----------------------------------+

Personaggio più a destra

Qui, uso il RIGHT() funzione per restituire il carattere più a destra di ogni pet name, quindi utilizzarlo di nuovo con ASCII() funzione per restituire il valore ASCII per quel carattere.

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

Risultato:

+---------+---------------------+------------+
| 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 |
+---------+---------------------+------------+

Stringhe vuote

Se si fornisce una stringa vuota, si ottiene 0 in fase di restituzione.

SELECT ASCII('');

Risultato:

+-----------+
| ASCII('') |
+-----------+
|         0 |
+-----------+

Valori Nulli

Fornendo null risulta null in fase di restituzione.

SELECT ASCII(null);

Risultato:

+-------------+
| ASCII(null) |
+-------------+
|        NULL |
+-------------+