MySQL in collations

Naletel sem na eno posebnost pri uporabi collationov v MySQL, pa bi malo z vami delil zadevo, za vsak primer, da se ne boste prevec cudili, ko boste kdaj naleteli na to zadevo. To obnasanje je sicer podrobno opisano tukaj, ampak kdo pa dandanasnji bere navodila? :)

Skratka, collations v MySQL niso namenjeni le zgolj pravilnemu urejanju po abecednem redu, ampak zelijo zadeve biti tudi pametne pri ugotavljanju, kateri sicer razlicni znaki so naceloma enaki. Da ponazorim:

mysql> select 'z' = 'ž' collate utf8_general_ci as test;
+------+
| test |
+------+
|    1 |
+------+

za razliko od:

mysql> select 'z' = 'ž' collate utf8_slovenian_ci as test;
+------+
| test |
+------+
|    0 |
+------+

Ce malo razmislimo, zadeva povsem stima, nam slovencem je seveda znak "z" razlicen od znaka "ž", vecino ostalih jezikov pa kratkomalo boli nekaj za te stresice, pa saj jih niti na tipkovnici nimajo :)

Ravno tako pa nas boli isti ze prej neomenjeni organ za nekatere druge znake, primer:

mysql> select 'n' = 'ñ' collate utf8_slovenian_ci as test;
+------+
| test |
+------+
|    1 |
+------+

za razliko od:

mysql> select 'n' = 'ñ' collate utf8_spanish_ci as test;
+------+
| test |
+------+
|    0 |
+------+

13 odgovorov

Sem si pogledal malo in tip stvar res lepo razloži, tako da sem si vse shranil. Sam namreč potrebujem to za eno optimizacijo, v glavnem gre se za grey code in colex predurejanje. Ne me podrobnosti spraševat, ker še nisem naštudiral teorije. Sam pri kombinatoriki, vsaka stvar pomaga.

V glavnem hvala, da si vzel čas. Vsekakor bo prišlo prav.

kopriva, konkretni primer je zgolj to kar je, primer namrec. Imas pa prav, v dolocenih primerih bi ta zadeva prisla celo prav, je pa vsekakor fino tocno vedeti, kako se zadeve obnasajo, pa jih lahko izkoristis v svoj prid.

o, ja, včasih je tako, da če ne veš natančno, kako nek detajl deluje, te zadeve tebe "izkoriščajo". :)