Hosszú idő óta tologatjuk a probléma megoldását, rendezzünk a magyar szabályok szerint mysql-ben: ismerje az ékezetes karaktereket, tudja a kétbetűsöket is: ly, ty, ny…, és ne legyen probléma a kis és nagybetű.
Legyen rá egy tárolt függvény: bármikor használható.
Ez lett a megfejtés(figyeljünk a charset-re):
CREATE DEFINER=`root`@`localhost` FUNCTION `orderer`(s varCHAR(255)) RETURNS varchar(255) CHARSET utf8
RETURN upper(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(replace(s,'á','azz')
,'í','izz'),'cs','czz'),'ly','lzz'),'é','ezz')
,'ó','oxx')
,'ö','oyy')
,'ő','ozz')
,'ty','tzz')
,'gy','gzz')
,'ú','uxx')
,'ü','uyy')
,'ű','uzz')
,'ny','nzz')
,'zs','zzz'))
Használat:
select * from tabla order by orderer(mezo) asc
Úgy tűnik működik. De talán már tudja a mysql is. Majd utánanézünk.