[ Solution @ 14.04.2009. 21:09 ] @
Postovani,


imam problem prilikom pretraživanja kolona koje su tipa VARCHAR i koje sadrže naša slova

npr. select * from tb_korisnici where korisnik like '%ć%'

kao rezultat dobijam i korisnike sa slovom c umesto ć


baza je UTF8 general_ci








[ bogdan.kecman @ 15.04.2009. 00:06 ] @
UTF8 general_ci kolacija bi "trebalo" da vidi slova sa i bez "kvacice" kao i cirilicu / latinicu kao "ista", isto kao sto vidi mala i velika slova ista ...

ako zelis da ti se u pretrazi ta slova razlikuju koristi binarnu kolaciju

ako zelis samo "po nekad" da menjas default kolaciju koristi COLLATE operator pri upitu


http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html
http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html
[ bogdan.kecman @ 15.04.2009. 00:13 ] @
jedan info samo da dodam ...

baza je utf8_general_ci je "nedovoljan" i skoro "netacan" info ... o cemu se radi .. ono sto je bitno za cuvanje podataka (sta moze da se sacuva, kako se cuva i slicno) je vezano za CHARSET sto NIJE utf8_general_ci ... charset je latin1, latin2, utf8 ... utf8_general_ci je KOLACIJA (collation) i ona odredjuje
- sort funkciju
- funkciju za poredjenje karaktera (kolacija je ta koja reseva da li je A isto sto i a, da li su Č č C c Č č isti karakteri ili razliciti ...)

Vrlo cesto u zadnje vreme vidim da ljudi definisu podatak samo preko kolacije i to iz razloga sto su se navukli na phpmyadmin koji vam daje da birate kolaciju kada kreirate polje i onda na osnovu toga sam generise charset... ali mora se obratiti paznja da su to dve odvojene stvari .. charset definise kako se podatak cuva a kolacija kako se isti poredi...