Sortowanie łańcuchów z polskimi znakami w MySQL

0

Dobra poddaje się jak to zrobić: mam tabelę, w której jest pole "tytuł". Pole to zawiera jak nazwa wskazuje tytuł. :) Może być to tytuł polski lub zagraniczny. Problem jest w tym, że muszę wyświetlić dane posortowane tytułem i za nic mi nie wychodzi :/ Pole ustawione na "utf8_unicode_ci". Może okaże się pomocne to, że tytuły rozpoczynające się na literę "Ś" ustawiają się między tytułami na "Ar..." a "At..." a tytuły na "Ż" są na samym początku :/. Z góry dzięki za pomoc.

Pozdrawiam

0

Ustaw porownywanie znakow na utf8_polish_ci.

0

To podstawowa rzecz na którą wpadłem. Nie działa. A nawet jakby działało dla polskich to co wtedy zrobi mi ze znakami w stylu "Ö" itp. Mam ich kilka w tytułach.

Pozdrawiam

0

Co ci nie działa?

mysql> show full columns from test;
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type        | Collation       | Null | Key | Default | Extra | Privileges                      | Comment |
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| test  | varchar(25) | utf8_general_ci | NO   |     | NULL    |       | select,insert,update,references |         |
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
1 row in set (0.00 sec)

mysql> select test from test order by test asc;
+------+
| test |
+------+
| a    |
| ą    |
| ó    |
| ö    |
| x    |
| z    |
| ź    |
+------+
7 rows in set (0.00 sec)

Rekordy były dodawane w zupełnie innej kolejności.

0

Napisałeś to tak jakbym sobie jaja robił, że mi nie działa. Przy dokładnie tych samych ustawieniach tu masz screna, że nie działa. Oczywiście to tylko wybrana podstrona akurat prezentująca "niedziałanie" :) :
aaaca.th.jpg

Chodzi o te krzaczki :/ Wyświetla się dobrze ale sortuje źle :/

0

Jest dokładnie odwrotnie. Sortuje dobrze, ale źle interpretuje znaki jeszcze przed sortowaniem. Wygląda na to, że te dane w ogóle nie są zapisane w UTF-8. Najprościej będzie wszystko wyeksportować, skonwertować na UTF-8 i zaimportować.

0

To w takim razie nasuwa mi się takie pytanie. Skoro napisy w bazie nie są w UTF-8 a całą witrynę mam w UTF-8 to dlaczego wszystkie znaki wyświetlają mi się prawidłowo bo w takim wypadku tego nie czaję.

Pozdrawiam

2

Czy zaraz po polaczeniu z baza danych wykonujesz zapytanie:

SET NAMES utf8;
0
Adam Boduch napisał(a)

Czy zaraz po polaczeniu z baza danych wykonujesz zapytanie:

SET NAMES utf8;

Dzięki. Jest najlepiej jak było. Jedynie z tego co zauważyłem to "Ö" jest gdzieś pomiędzy "O" :/ Ale i tak jest już git. Jakby miał ktoś jeszcze jakiś pomysł na to "Ö" to byłbym wdzięczny. W każdym razie twój post rozwiązał i tak 99% mojego problemu.

Pozdrawiam.

0

Mam teraz kolejny problem z tymi znaczkami :/ Chodzi o to, że posiadam wyszukiwanie na stronie i jeżeli we frazie umieszczę chociaż jeden polski znak to mi zwraca wszystkie rekordy :/ Z góry dzięki za pomoc.

Pozdrawiam

PS. Oczywiście wyszukiwanie bez polskich znaków działa poprawienie.

0

Wiem gdzie jest problem. Nie leży on w zapytaniu tylko w tym, że "post" nie przekazuje mi polskich znaków :/ Niestety nie wiem na razie dlaczego i jak to rozwiązać więc czekam na pomysły. W gruncie rzeczy to teraz pytanie do działu webmastering :/

Pozdrawiam

EDIT: Rozwiązałem mój problem. Nie było pytania :)

0

czy przypadkiem zamianst np. ę nie leci ci %EA?

0
massther napisał(a)

czy przypadkiem zamianst np. ę nie leci ci %EA?

Może i leci, może i nie ale to już nie ważne bo działa. Problem rozwiązany temat do zamknięcia. Ale dzięki za zaangażowanie ;)

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1