Mysql
 sql >> Database >  >> RDS >> Mysql

Mysql ordina per colonna con caratteri unicode

Per ordinare usando il punto di codice unicode, probabilmente devi usare utf8_bin confronto.

Precisamente, il _bin suffisso indica di ordinare in base alla rappresentazione binaria di ogni carattere .

Per sostituire le regole di confronto predefinite durante l'ordine, utilizzerai ORDER BY ... COLLATE :

Per parafrasare la documentazione:

SELECT k
FROM t1
ORDER BY k COLLATE utf8_bin;

Se la tua colonna di testo non usa la codifica utf8, dovrai CONVERT esso:

SELECT k
FROM t1
ORDER BY CONVERT(k USING utf8) COLLATE utf8_bin;

Si prega di notare che ho usato utf8 come esempio qui in quanto questa è la codifica Unicode più comune. Ma il tuo server MySQL probabilmente supporta altre codifiche Unicode, come ucs2 ("UTF-16").