Ce face WEIGHT_STRING()
MySQL compară și sortează textele după o greutate calculată de colație. WEIGHT_STRING() îți arată această greutate ca șir binar (de obicei afișat cu HEX()).
Două texte cu aceeași greutate sunt considerate egale. Așa poți înțelege de ce 'Iasi' = 'Iași' este adevărat cu colația implicită.
Parametri
| Parametru | Descriere |
|---|---|
sir |
Textul analizat. |
AS CHAR(n) / AS BINARY(n) |
Opțional. Completează sau taie textul la n caractere/octeți înainte de calcul. |
Ce returnează
Un șir binar cu greutatea de sortare.
Exemple
Exemplul 1: De ce sunt egale textele cu și fără diacritice
SELECT HEX(WEIGHT_STRING('Iasi')) AS fara_diacritice,
HEX(WEIGHT_STRING('Iași')) AS cu_diacritice,
WEIGHT_STRING('Iasi') = WEIGHT_STRING('Iași') AS aceeasi_greutate;
Rezultat
+------------------+------------------+------------------+
| fara_diacritice | cu_diacritice | aceeasi_greutate |
+------------------+------------------+------------------+
| 1D321C471E711D32 | 1D321C471E711D32 | 1 |
+------------------+------------------+------------------+
Greșeli frecvente
- Folosești
WEIGHT_STRING()în codul aplicației. Este o funcție de depanare, iar rezultatul depinde de colație și de versiunea MySQL.
Comenzi înrudite
STRCMP(): Compară două texte și returnează -1, 0 sau 1, după ordinea lor alfabetică.HEX() și UNHEX(): HEX() transformă un număr sau un text în hexazecimal; UNHEX() face conversia inversă.Operatori de comparație: Compară două valori și returnează 1 (adevărat), 0 (fals) sau NULL.