So che ci sono molte domande simili su SF, ma penso che il mio sia abbastanza diverso da giustificare una nuova domanda. Ho una tabella che ha una singola colonna come utf8 con utf8_unicode_ci. Ha anche una chiave univoca in questa colonna insieme a un'altra colonna che contrassegna un codice di lingua. I dati nella colonna sono in molti script diversi (in latino con vari accenti, cinese e russo, tra gli altri).MySQL Case Insensitive ma Accent Sensitive UTF8 Chiave unica
Il problema è che a volte voglio entrare in due parole con significati diversi che differiscono solo per un segno diacritico (cioè spagnolo ano vs año). Dal momento che utf8_unicode_ci è al contempo caso e insensibile agli accenti, pensa che siano uguali e mi consenta solo di inserirne uno. Questo fa schifo. Idealmente, mi piacerebbe semplicemente passare l'intera colonna su alcune regole di confronto che sono case INsensitive ma sensibili agli accenti, ma ciò non sembra esistere. Un sacco di cose diverse usa questa colonna, quindi preferirei non modificare le regole di confronto predefinite della colonna in utf8_bin per timore di fare confusione con la distinzione tra maiuscole e minuscole.
Quindi, tutto ciò detto, ho bisogno di una soluzione che non influenzi la distinzione tra maiuscole e minuscole predefinita nelle molte query esistenti che colpiscono questa colonna, ma mi consentirà di aggiungere parole che differiscono solo da un segno diacritico. Idee? Passerò solo il vincolo di chiave univoco a utf8_bin se necessario, ma preferirei non farlo perché non voglio mai due cose nella tabella che differiscono solo caso per caso.
Alcuni caratteri maiuscoli non hanno un equivalente in lettere minuscole. Alcuni hanno equivalenti minuscoli multipli. È un po 'un casino. –