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

Esiste un confronto utf8_unicode_cs?

Mi sono imbattuto nello stesso problema e dopo aver cercato su Google, sembra che MySQL non lo includa. Per "simularlo", come dici tu,

1) Per garantire la distinzione tra maiuscole e minuscole nel DB:imposta la colonna della tabella su utf8_bin confronto
Ciò consente:

  • SELEZIONI rigorose:SELECT "Joe" NON restituirà righe con "joe" / "joE" / "jOe" / etc
  • indice UNIQUE rigoroso:una colonna con un indice UNIQUE tratterà le differenze tra maiuscole e minuscole come valori diversi. Ad esempio, se viene utilizzata una confronto utf8_unicode_ci, l'inserimento di "Joe" su una tabella che ha già "joe" attiverà un errore "Chiave duplicata". Se viene utilizzato ut8_bin, l'inserimento di "Joe" funzionerà correttamente.

2) Per ottenere l'ordine corretto nei risultati:aggiungi le regole di confronto alla query SQL:

SELECT ... ORDER BY column COLLATE utf8_unicode_ci