FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Flitig postare
|
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. |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Mycket flitig postare
|
Måste väl använda utf8_swedish_ci för att den ska sortera som i sverige om jag inte minns helt fel.
|
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Bara ett inlägg till!
|
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; |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Flitig postare
|
...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å ![]() |
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Klarade millennium-buggen
|
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. |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Mycket flitig postare
|
BINARY kommer väl även göra att sorteringen av ÅÄÖ blir fel om jag inte minns fel.
|
||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Flitig postare
|
Citat:
Tack för tipset, kör på det istället. |
|||
![]() |
![]() |
Svara |
|
|