Sono ignorante della slovacca, mi dispiace. Ma la collazione slovacca utf8_slovak_ci
tratta la lettera slovacca č
come distinta da c
. (Fare i cognomi che iniziano con Č tutti venire dietro a quelli che iniziano con C nei vostri elenchi telefonici? Probabilmente lo fanno. I creatori di MySQL certamente pensano di fare.)
La raccolta utf8_general_ci
tratta č
e c
lo stesso . Ecco un pasticcino che dimostra tutto questo. http://sqlfiddle.com/#!9/46c0e/1/0
Se si modifica la fascicolazione della colonna contenente il nome del prodotto per utf8_general_ci
, si otterrà una tabella più ricerca-friendly. Supponiamo che il tuo tavolo sia chiamato product
e che la colonna con il nome al suo interno sia chiamata product_name
. Quindi questa istruzione di definizione dei dati SQL convertirà la colonna come richiesto. Si dovrebbe cercare il tipo di dati effettivo della colonna invece di utilizzare varchar(nnn)
come ho fatto in questo esempio.
alter table product modify product_name varchar(nnn) collate utf8_general_ci
Se non è possibile modificare la tabella, quindi è possibile modificare la clausola WHERE per lavorare in questo modo, specificando le regole di confronto in modo esplicito.
WHERE 'userInput' COLLATE utf8_general_ci = product_name
Ma questa ricerca sarà più lenta rispetto alla modifica delle regole di confronto delle colonne.
fonte
2015-08-23 23:01:56
aggiungere un'altra colonna e quindi aggiungere parole chiave alternative per il nome del prodotto. questo è solo un suggerimento! –
Ci stavo pensando, ma ci sono molte possibilità per la parola. f.e. se sta trovando čučoriedka, potrebbe scrivere čucoriedka, cučoriedka, cucoriedka ... Non posso scrivere tutte le parole possibili nel database o con qualche script –
akam ha detto la cosa giusta ..puoi aggiungere una colonna in più per questo e nello script durante la ricerca devi abbinare entrambi i valori dei campi. in modo che il tuo valore di ricerca corrisponda a čučoriedka o altro valore – jeeva