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șteutf8mb4.
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.