jak wymusic sortowanie mysql dla znakow kodowanych w cp1250
sado4dnow - 18-10-2007 00:03
jak wymusic sortowanie mysql dla znakow kodowanych w cp1250
Wyeksportowałem do bazy na serwerze providera dane (68 rekordów - 68 literek polskiego alfabetu). Ponieważ dane eksportowane są z Accessa przez ODBC, zapewne są w kodowaniu cp1250. Nie chcę i nie mogę zmieniać tego kodowania. Chcę tak przestawić bazę MySql, zeby potrafiła posortować dane w takim kodowaniu. Ustawiłem tabelę na charset: cp1250 oraz collation na: cp1250_general_ci. Wysyłam zapytania ze skryptu MySql do wyświetlania posortowanych danych. Stosuję: mysql_query('SET NAMES cp1250;', $link_do_bazy); mysql_query('SET collation_connection = cp1250_general_ci;', $link_do_bazy); mysql_query('SET CHARACTER SET cp1250;', $link_do_bazy); mysql_query('set character_set_connection=cp1250;', $link_do_bazy); mysql_query('set character_set_client=cp1250;', $link_do_bazy); mysql_query ('set character_set_database=cp1250;', $link_do_bazy); mysql_query ('set character_set_results=cp1250;', $link_do_bazy); mysql_query ('set character_set_server=cp1250;', $link_do_bazy); mysql_query ('set collation_database=cp1250_general_ci;', $link_do_bazy); mysql_query ('set collation_server=cp1250_general_ci;'); [...] $zapytanie = "SELECT * FROM testy order by rekst"; [...] Dane nie są sortowane prawidłowo. Jak wymusić dla MySql prawidłowe sortowanie danych zakodowanych w cp1250 ?? Dodam że nie chodzi mi o wyświetlanie "krzaków", tylko kolejność rekordów.
Pozdrawiam, Paweł.
Wyniki a | a - 1 A | A - 35 b | b - 3 B | B - 37 c | c - 4 C | C - 38 ć | ć - 5 Ć | Ć - 39 d | d - 6 D | D - 40 E | E - 41 e | e - 7 Ę | Ę - 42 ę | ę - 8 F | F - 43 f | f - 9 g | g - 10 G | G - 44 h | h - 11 H | H - 45 i | i - 12 I | I - 46 j | j - 13 J | J - 47 k | k - 14 K | K - 48 L | L - 49 ź | ź - 36 l | l - 15 Ł | Ł - 50 ł | ł - 16 m | m - 17 M | M - 51 n | n - 18 N | N - 52 ń | ń - 19 Ń | Ń - 53 o | o - 20 O | O - 54 ó | ó - 28 Ó | Ó - 62 P | P - 55 p | p - 21 Q | Q - 56 q | q - 22 r | r - 23 R | R - 57 s | s - 24 S | S - 58 | - 2 t | t - 26 T | T - 60 U | U - 61 u | u - 27 w | w - 29 W | W - 63 X | X - 64 x | x - 30 y | y - 31 Y | Y - 65 Z | Z - 66 z | z - 32 ż | ż - 34 Ż | Ż - 68 ? | ? - 59 ? | ? - 25 ? | ? - 33 ? | ? - 67
=?iso-8859-2?Q?Jaros=B3aw_Niemczyk?= - 18-10-2007 00:03
Użytkownik "sado4dnow" <sado4dnow@wp.pl> napisał w wiadomości news:ff5l5t$hne$1@news.onet.pl... > Wyeksportowałem do bazy na serwerze providera dane (68 rekordów - 68 > literek > polskiego alfabetu). Ponieważ dane eksportowane są z Accessa przez ODBC, > zapewne są w kodowaniu cp1250. > Nie chcę i nie mogę zmieniać tego kodowania. > Chcę tak przestawić bazę MySql, zeby potrafiła posortować dane w takim > kodowaniu. Ustawiłem tabelę na charset: cp1250 oraz collation na: > cp1250_general_ci.
> Dodam że nie chodzi mi o wyświetlanie "krzaków", tylko kolejność rekordów. > > Pozdrawiam, > Paweł. > Witam. Może spróbuj cp1250_bin
POzdrawiam - Jarek
Marcin 'frodo2000' Molak - 19-10-2007 00:00
Spróbuj użyć funkcji COLLATE w zapytaniu SELECT: http://dev.mysql.com/doc/refman/5.0/...t-collate.html
Pozdrawiam, Marcin Molak
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
zanotowane.pldoc.pisz.plpdf.pisz.plptsite.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|