[MYSQL] Niespodziewany wynik
=?ISO-8859-2?Q?Bogus=B3aw_Faja?= - 29-11-2005 10:11
[MYSQL] Niespodziewany wynik
Witam!
Dla zapytania:
SELECT substring( tytul_PL, 1, 1 ) as url, if ( substring( tytul_PL, 1, 1 )='1', '0-9', substring( tytul_PL, 1, 1 ) ) as nazwa FROM `books` GROUP BY IF ( substring( tytul_PL, 1, 1 ) BETWEEN 0 AND 9 , '0-9', substring( tytul_PL, 1, 1 ) )
Otrzymuję tylko 'T', mimo, że wg. mnie powinienem dostać dość sporą część alfabetu (tytul_PL to tytul ksiazki, a mi chodzi o wyciagniecie pierwszych liter tytulow, w przypadku, gdy tytul zaczyna sie inaczej niz 0-9)... Efekt tego przedstawia strona: http://books24.8-c.org/ W sekcji Alfabetycznie jest tylko jedna literka... Jest gdzieś błąd w zapytaniu?
pozdr.
Proton - 29-11-2005 10:11
Użytkownik "Bogusław Faja" <zymen@zymen.net> napisał w wiadomości news:dmcmni$2jkf$1@node1.news.atman.pl... > Witam! > > Dla zapytania: > > > SELECT > substring( tytul_PL, 1, 1 ) as url, > if > ( > substring( tytul_PL, 1, 1 )='1', > '0-9', > substring( tytul_PL, 1, 1 ) > ) as nazwa > FROM > `books` > GROUP BY > IF > ( > substring( tytul_PL, 1, 1 ) BETWEEN 0 AND 9 , > '0-9', > substring( tytul_PL, 1, 1 ) > ) > > Otrzymuję tylko 'T', mimo, że wg. mnie powinienem dostać dość sporą część > alfabetu (tytul_PL to tytul ksiazki, a mi chodzi o wyciagniecie pierwszych > liter tytulow, w przypadku, gdy tytul zaczyna sie inaczej niz 0-9)... > Efekt tego przedstawia strona: http://books24.8-c.org/ > W sekcji Alfabetycznie jest tylko jedna literka... Jest gdzieś błąd w > zapytaniu?
Zamiast GROUP BY uzyj DISTINCT i zobacz jaki bedzie wynik -- pozdro Proton
=?ISO-8859-2?Q?Bogus=B3aw_Faja?= - 29-11-2005 10:11
Proton napisał(a): > Zamiast GROUP BY uzyj DISTINCT i zobacz jaki bedzie wynik
To jest jakieś rozwiązanie, ale jak mam w takim razie wrzucić tytuły:
01 nazwa xyz 3ds max 100 poręcznych
W jedną kategorię?
Chodzi mi o stworzenie listy a...z, gdzie do danej literki przypinane są wszystkie książki, których nazwy się nią właśnie rozpoczynają i jednej tylko grupy 0-9, gdzie przypinane są wszystkie książki, których nazwy rozpoczynają się od cyfry...
Jak to osiągnąć przy pomocy distinct?
pozdr.
Jester - 29-11-2005 10:11
Bogusław Faja napisał(a):
> Witam! > > Dla zapytania: > > > SELECT > substring( tytul_PL, 1, 1 ) as url, > if > ( > substring( tytul_PL, 1, 1 )='1',
Dlaczego nie substring( tytul_PL, 1, 1 ) BETWEEN 0 AND 9 jak w group by?
> '0-9', > substring( tytul_PL, 1, 1 ) > ) as nazwa > FROM > `books` > GROUP BY > IF > ( > substring( tytul_PL, 1, 1 ) BETWEEN 0 AND 9 , > '0-9', > substring( tytul_PL, 1, 1 ) > ) > order by 2;
> Otrzymuję tylko 'T', mimo, że wg. mnie powinienem dostać dość sporą > część alfabetu (tytul_PL to tytul ksiazki, a mi chodzi o wyciagniecie > pierwszych liter tytulow, w przypadku, gdy tytul zaczyna sie inaczej > niz 0-9)... Efekt tego przedstawia strona: http://books24.8-c.org/ > W sekcji Alfabetycznie jest tylko jedna literka... Jest gdzieś błąd w > zapytaniu? >
Poza zaznaczonymi powyżej miejscami, w których bym zmienił (choć nie ma to wpływu na Twój błąd), wyglądą że jest ok i powinno zwracać co chciałeś. Sprawdziłem u siebie na naprędce stworzonej tabeli i mam alfabet z liter dla których są pozycje. Próbowałeś wykonywać to zapytanie z innego poziomu (np. bezpośrednio w konsoli mysqla)? Zobacz jaki naprawdę zwraca wynik. Być może problem jest z fragmentem skryptu generującym to rozwijane menu - przyjrzyj się dokładnie temu miejscu, ew. zapytaj na stosownej grupie jeżeli okaże się, że to błąd w skrypcie z którym nie potrafisz się uporać.
-- Pozdrawiam Jester
=?ISO-8859-2?Q?Bogus=B3aw_Faja?= - 01-12-2005 20:33
Jester napisał(a):
>> SELECT >> substring( tytul_PL, 1, 1 ) as url, >> if >> ( >> substring( tytul_PL, 1, 1 )='1', > > > Dlaczego nie substring( tytul_PL, 1, 1 ) BETWEEN 0 AND 9 jak w group by?
Pomyłka przy modyfikacjach kodu, w celu sprawdzenia, gdzie jest coś nie tak.. ale to tak jak napisałeś niżej, nie zmienia istoty kodu.
>> '0-9', >> substring( tytul_PL, 1, 1 ) >> ) as nazwa >> FROM >> `books` >> GROUP BY >> IF >> ( >> substring( tytul_PL, 1, 1 ) BETWEEN 0 AND 9 , >> '0-9', >> substring( tytul_PL, 1, 1 ) >> ) >> > order by 2; > >> Otrzymuję tylko 'T', mimo, że wg. mnie powinienem dostać dość sporą >> część alfabetu (tytul_PL to tytul ksiazki, a mi chodzi o wyciagniecie >> pierwszych liter tytulow, w przypadku, gdy tytul zaczyna sie inaczej >> niz 0-9)... Efekt tego przedstawia strona: http://books24.8-c.org/ >> W sekcji Alfabetycznie jest tylko jedna literka... Jest gdzieś błąd w >> zapytaniu? >> > > Poza zaznaczonymi powyżej miejscami, w których bym zmienił (choć nie ma > to wpływu na Twój błąd), wyglądą że jest ok i powinno zwracać co > chciałeś. Sprawdziłem u siebie na naprędce stworzonej tabeli i mam > alfabet z liter dla których są pozycje. Próbowałeś wykonywać to > zapytanie z innego poziomu (np. bezpośrednio w konsoli mysqla)? Zobacz > jaki naprawdę zwraca wynik. Być może problem jest z fragmentem skryptu > generującym to rozwijane menu - przyjrzyj się dokładnie temu miejscu, > ew. zapytaj na stosownej grupie jeżeli okaże się, że to błąd w skrypcie > z którym nie potrafisz się uporać.
To jest błąd w zapytaniu.. albo mysql. Sprawdzałem phpmyadminem i jest to samo... lokalnie wszystko działa poprawnie, zdalnie już są problemy (inne engine mysqla?).
Problem jest dokladnie na hostings.pl
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 - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
zanotowane.pldoc.pisz.plpdf.pisz.plnumervin.keep.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 |
|