WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   MySQL tycker å & ä = a (https://www.wn.se/forum/showthread.php?t=25781)

Neo 2007-12-19 22:40

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.

WizKid 2007-12-19 22:41

Måste väl använda utf8_swedish_ci för att den ska sortera som i sverige om jag inte minns helt fel.

coredev 2007-12-19 22:47

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;

Neo 2007-12-19 22:47

...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å ;)

Magnus_A 2007-12-19 22:56

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.

WizKid 2007-12-19 23:07

BINARY kommer väl även göra att sorteringen av ÅÄÖ blir fel om jag inte minns fel.

Neo 2007-12-20 07:40

Citat:

Originally posted by elprisguiden@Dec 19 2007, 22:56
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.


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