CHARSET() în MySQL

Returnează setul de caractere al unui text (utf8mb4, latin1 etc.).

Sintaxă
CHARSET(text)

Ce face CHARSET()

Setul de caractere spune cum sunt transformate literele în octeți. utf8mb4 (implicit în MySQL 8) acceptă orice caracter, inclusiv diacritice și emoji; latin1 nu are ș și ț.

Pentru numere și date, rezultatul este binary. Funcțiile de sistem ca USER() returnează texte utf8mb3. Dacă argumentul este NULL, rezultatul este NULL.

Parametri

Parametru Descriere
text Textul sau coloana verificată.

Ce returnează

Numele setului de caractere sau NULL.

Exemple

Exemplul 1: Seturi de caractere pentru diferite valori

SELECT CHARSET('abc') AS text_simplu,
       CHARSET(CONVERT('abc' USING latin1)) AS convertit,
       CHARSET(USER()) AS functie_sistem,
       CHARSET(123) AS numar;

Rezultat

+-------------+-----------+----------------+--------+
| text_simplu | convertit | functie_sistem | numar  |
+-------------+-----------+----------------+--------+
| utf8mb4     | latin1    | utf8mb3        | binary |
+-------------+-----------+----------------+--------+

Exemplul 2: Coloane cu seturi diferite

CREATE TABLE texte (
  nou VARCHAR(20) CHARACTER SET utf8mb4,
  vechi VARCHAR(20) CHARACTER SET latin1
);
INSERT INTO texte VALUES ('Iași', 'Iasi');

SELECT CHARSET(nou), CHARSET(vechi) FROM texte;

Rezultat

+--------------+----------------+
| CHARSET(nou) | CHARSET(vechi) |
+--------------+----------------+
| utf8mb4      | latin1         |
+--------------+----------------+

Greșeli frecvente

  • Salvezi texte românești într-o coloană latin1. Literele ș și ț nu există în acest set; folosește utf8mb4.

Comenzi înrudite

  • COLLATION(): Returnează colația unui text: regulile după care se compară și se sortează.
  • COERCIBILITY(): Returnează un număr de la 0 la 6 care arată cât de „puternică” este colația unui text.
  • CONVERT(): Convertește o valoare în alt tip (ca CAST) sau un text în alt set de caractere.