[mysql]Problem z sortowaniem polskich znaków

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
majkey
Nowy
Nowy
Posty: 42
Rejestracja: śr lis 26, 2003 3:31 pm
Lokalizacja: Białystok

[mysql]Problem z sortowaniem polskich znaków

Post autor: majkey »

Po wykonaniu zapytania z sortowaniem wg nazwiska otrzymuję:
ANDRYSEWICZ
LEWICKA
SKOLIMOWSKI
ZALEWSKI
ŁAWICKA
:evil:
a chcę otrzymac:
ANDRYSEWICZ
LEWICKA
ŁAWICKA
SKOLIMOWSKI
ZALEWSKI
Jak to zrobić? Flaszka dla tego ktory mi to powie jak ustawic MySQL aby tak sortował! Thanx!
[/b]
Wojciech Kocjan
Zaczyna działać
Zaczyna działać
Posty: 427
Rejestracja: sob gru 14, 2002 10:51 am

Re: [mysql]Problem z sortowaniem polskich znaków

Post autor: Wojciech Kocjan »

Problem lezy z polskimi literami - wyedytuj plik my.ini (w katalogu Windowsa), zadbaj aby znalazly sie tam takie linijki:

Kod: Zaznacz cały

language=c:\usr/MYSQL/share/polish
character-sets-dir=c:\usr/MYSQL/share/charsets
default-character-set=latin2
Oczywiscie sciezki ustal sobie odpowiednie dla Ciebie.
Mayhen
Nowy
Nowy
Posty: 158
Rejestracja: śr lip 10, 2002 9:21 pm
Lokalizacja: 21°41' E | 50°35' N
Kontakt:

Re: [mysql]Problem z sortowaniem polskich znaków

Post autor: Mayhen »

jeśli nie może zmienić ustawien (nie twój serwer, serw w innym kraju) to można stosować tą metodę, ja ją tu tylko opiszę:

wszystko polega na zamienieniu polskich ogonkow na ich odpowiedniki:
(wymyślone nazwy):

Kod: Zaznacz cały

Ąbcdefg
Abcdefg
Łkjhg
Lkjh
asdf
qwer
oraz zrobieniu z tych danych tablicy:
dana -> indeks.

zmieniamy (w tablicach) na:

Kod: Zaznacz cały

ogonek -> 'ogonek'+z :

Azbcdefg
Abcdefg
Lzkjhg
Lkjh
asdf
qwer
co po posortowaniu według alfabetu da.

Kod: Zaznacz cały

Abcdefg
Azbcdefg
Lkjh
Lzkjhg
asdf
qwer
potem dzięki tablicy mamy numer wiersza w którym występuje dany wyraz i możemy wybierać przechodząc przez tablice jednocześnie pobierając dane z mysql. Sposób trochę na około, ale działa.
ODPOWIEDZ