ASCII() și ORD() în MySQL

Returnează codul numeric al primului caracter dintr-un text.

Sintaxă
ASCII(sir)
ORD(sir)

Ce face ASCII() și ORD()

ASCII() returnează valoarea primului octet din text. Pentru literele simple (a-z, cifre) este codul ASCII obișnuit.

ORD() ține cont de caracterele pe mai mulți octeți: pentru Ș combină ambii octeți (0xC898 = 51352). Pentru text fără diacritice, cele două funcții dau același rezultat.

Parametri

Parametru Descriere
sir Textul; contează doar primul caracter.

Ce returnează

Un număr întreg (0 pentru șirul gol).

Exemple

Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.

CREATE TABLE clienti (
  id INT PRIMARY KEY,
  nume VARCHAR(50),
  oras VARCHAR(30),
  email VARCHAR(100),
  telefon VARCHAR(20)
);

INSERT INTO clienti VALUES
  (1, 'Ana Pop', 'Iași', 'ana.pop@exemplu.ro', '0722-123-456'),
  (2, 'bogdan ionescu', 'Cluj-Napoca', 'bogdan@firma.ro', '0744 555 101'),
  (3, 'Cristina Marin', 'Brașov', 'cristina@exemplu.ro', '0733.222.909'),
  (4, 'Dan Stoica', 'Timișoara', NULL, '0755123123');

Exemplul 1: Litere simple și diacritice

SELECT ASCII('A') AS ascii_a, ORD('A') AS ord_a,
       ASCII('Ș') AS ascii_s, ORD('Ș') AS ord_s;

Rezultat

+---------+-------+---------+-------+
| ascii_a | ord_a | ascii_s | ord_s |
+---------+-------+---------+-------+
|      65 |    65 |     200 | 51352 |
+---------+-------+---------+-------+

Exemplul 2: Gruparea clienților după inițială

SELECT UPPER(LEFT(nume, 1)) AS initiala, ASCII(UPPER(nume)) AS cod
FROM clienti
ORDER BY cod;

Rezultat

+----------+------+
| initiala | cod  |
+----------+------+
| A        |   65 |
| B        |   66 |
| C        |   67 |
| D        |   68 |
+----------+------+

Greșeli frecvente

  • Folosești ASCII() pe texte cu diacritice și primești doar primul octet (200 pentru Ș). Pentru caractere multibyte folosește ORD().

Comenzi înrudite

  • CHAR(): Construiește un text din codurile numerice ale caracterelor.
  • HEX() și UNHEX(): HEX() transformă un număr sau un text în hexazecimal; UNHEX() face conversia inversă.
  • LEFT(): Returnează primele N caractere dintr-un text.