Come posso eseguire la ricerca utf8 sensibile al maiuscolo e al minuscolo in mysql? Utf8_bin è sensibile al maiuscolo/minuscolo e utf8_general_ci è insensibile all'aspetto.è possibile avere regole di confronto utf8 sensibili al maiuscolo e minuscolo?
risposta
Non sembra esserci uno perché case sensitivity is tough to do in Unicode.
C'è un confronto utf8_general_cs
ma sembra essere sperimentale e, in base a this bug report, non fa ciò che è previsto quando si utilizza LIKE.
Se i dati sono solo di umlaut occidentale (ad es. Umlaut inclusi in ISO-8859-1), è possibile fascicolare l'operazione di ricerca su latin1_german2_ci
o creare una colonna di ricerca separata con esso (quella specifica fascicolazione è sensibile all'accento secondo lo this page; potrebbe anche essere lo latin1_general_ci
, non lo so e non posso testarlo in questo momento).
Se si desidera differire "caffè" da "cafè" si può usare:
Select word from table_words WHERE Hex(word) LIKE Hex("café");
In questo modo si tornerà 'café'.
In caso contrario, se si utilizza:
Select word from table_words WHERE Hex(word) LIKE Hex("cafe");
tornerà caffetteria. Sto usando la latin1_german2_ci Collation.
È possibile utilizzare "hex
" per rendere la ricerca sensibile all'access. Quindi aggiungi semplicemente lcase per renderlo nuovamente insensibile alle maiuscole/minuscole. In tal modo si otterrebbe:
SELECT name FROM people WHERE HEX(LCASE(name)) = HEX(LCASE("René"))
Si buttano tutti gli indici fuori dalla finestra in questo modo. Se si vuole evitare di dover fare una scansione completa della tabella e si dispone di un indice sul "nome", la ricerca anche per la stessa cosa, senza l'esagono e LCase:
SELECT name FROM people WHERE name = "René" and HEX(LCASE(name)) = HEX(LCASE("René"))
In questo modo l'indice su "name
" volontà essere utilizzato per trovare solo le righe "René
" e "Rene" e quindi il confronto con lo "hex
" deve essere eseguito solo su quelle due righe anziché sulla tabella completa.
Se si desidera la piegatura del caso, ma la sensibilità dell'accento, si prega di presentare una richiesta all'indirizzo http://bugs.mysql.com. –
- 1. Chiavi del dizionario sensibili al maiuscolo/minuscolo
- 2. Le operazioni di stringa .NET sono sensibili al maiuscolo/minuscolo?
- 3. Le stored procedure SQL sono sensibili al maiuscolo/minuscolo?
- 4. I selettori CSS sono sensibili al maiuscolo/minuscolo?
- 5. I nomi dei domini IDN sono sensibili al maiuscolo/minuscolo?
- 6. Gli IDU del dispositivo iOS sono sensibili al maiuscolo/minuscolo?
- 7. XML è sensibile al maiuscolo/minuscolo?
- 8. Java è sensibile al maiuscolo/minuscolo?
- 9. Ricerca sensibile al maiuscolo/minuscolo Lucene
- 10. Confronto accento e maiuscolo/minuscolo in Oracle con LIKE
- 11. Le classi della finestra di Windows sono sensibili al maiuscolo/minuscolo?
- 12. I valori dell'intestazione della connessione HTTP sono sensibili al maiuscolo/minuscolo?
- 13. regex maiuscolo in minuscolo
- 14. Il tag dichiarazione XML è sensibile al maiuscolo/minuscolo?
- 15. Il DN del LDAP non è sensibile al maiuscolo/minuscolo?
- 16. Perché Common Lisp non è sensibile al maiuscolo/minuscolo?
- 17. AutoMapper è sensibile al maiuscolo/minuscolo o insensibile?
- 18. La codifica percentuale dell'URL è sensibile al maiuscolo/minuscolo?
- 19. Il nome del protocollo negli URL è sensibile al maiuscolo/minuscolo?
- 20. Maiuscolo/minuscolo JFlex regex
- 21. Conversione in maiuscolo e minuscolo in Java
- 22. nome file in minuscolo e maiuscolo
- 23. Come impostare Sqlite3 come non sensibile al maiuscolo/minuscolo durante il confronto tra stringhe?
- 24. Python è sensibile al maiuscolo/minuscolo? '#' È un simbolo di commento in Python?
- 25. URL Struttura: Minuscolo VS Maiuscolo
- 26. Come rendere questa regola .htaccess non sensibile al maiuscolo/minuscolo?
- 27. Come posso cercare maiuscolo/minuscolo in pgrep?
- 28. estensione del file è cambiare maiuscolo a minuscolo in CodeIgniter
- 29. Distinzione in Swift tra "Sé" maiuscolo e "Sé" minuscolo
- 30. Come dividere una stringa in maiuscolo e minuscolo in JavaScript?
Non oggi ... Ma, se si desidera la piegatura del caso, ma la sensibilità dell'accento, si prega di presentare una richiesta all'indirizzo http://bugs.mysql.com. –