![]() |
Har sökt ihjäl mig på Google och i forumet, men hittar inget svar på mitt problem (söker förmodligen efter fel saker).
Jag har en tabell (utf8_general_ci) med fältet "namn" (varchar(255) utf8_general_ci). När jag sorterar på "namn ASC" (säkert DESC för den delen också) tolkar MySQL å&ä som a, och ö som o. Det är samma sak i phpMyAdmin som i min SQL-kod. Vad kan detta bero på? Jag har aldrig upplevt något liknande förr. |
Måste väl använda utf8_swedish_ci för att den ska sortera som i sverige om jag inte minns helt fel.
|
Hittade lite info på MySQLs hemsida.. Du verkar ha fel på din "Collation" - alltså metodeb som MySQL:en sorterar ditt data med i "order by". Collation-tabellerna är unika per land. Eftersom du använder utf8_general_ci blir detta antagligen fel, du bör istället använda utf8_swedish_ci.
Nått liknande kan fixa ditt problem. ALTER TABLE Table1 MODIFY "namn" COLLATE utf8_swedish_ci; |
...jag löste det själv, slängde på BINARY() på "name" så fungerade det! Behövde inte ändra på collation för tabellen.
edit: ...tack ändå ;) |
Du ska inte använda binary. Binary innebär att den jämför tecken för tecken, och tolkar inte dubbeltecknen i UTF-8 som dubbeltecken.
om du inte kan/vill göra om tabellen så använd order by xxx collate utf8_swedish_ci i frågan. |
BINARY kommer väl även göra att sorteringen av ÅÄÖ blir fel om jag inte minns fel.
|
Citat:
Tack för tipset, kör på det istället. |
Alla tider är GMT +2. Klockan är nu 19:00. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson