![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mamy zapytanie powiedzmy:
MySQL twierdzi mi, że nie ma takiej kolumny "real_price" i wywala błąd. Jednak można po niej sortować
I tutaj mysql nie robi żadnych problemów, może ktoś mi to wytłumaczyć? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
bo przy sortowaniy mysql uwzględnia aliasy, a przy warunkach nie uwzględnia (najpierw jest jakby warunek, a dopiero potem tworzony alias)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
to jak sobie z tym poradzić w takim razie ;]
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no nie uzywaj aliasu....
zamiast: WHERE real_price > '500' daj: WHERE p.price > '500' |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 23.12.2008 Skąd: Radzionków Ostrzeżenie: (0%) ![]() ![]() |
aliasy sa glownie wykorzystywane do funkcji agregujacych a warunki na nich robione sa wykonywane przez having.
podstawy sqla (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) najpierw jest where potem group by potem having potem order by |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
aliansu muże użyć ponieważ to jest coś tekiego "if(s.special_statsus, s.special_price, p.price) as real_price", wiec alians nie jest tutaj tak sobie.
hm jesli wszstkie wyniki pogrupuje wedle p.product_id to nie wpłynie to w żaden sposób mi na wyniki, tz zwrócone zostaną takie same rekordy, jak wtedy gdybym nie użył GROUP by? nospor użyte z twojej strony zapytanie:
Właśnie też nie zwraca mi dobrych wyników (tylko w momencie kiedy sortowanie jest po real_price, w kazdym innym wypadku, działa dobrze), jeśli, chociaz tutaj juz nie było użytego real_prce w WHERE tylko, a jedynie w ORDER by, dziwne... Ten post edytował propage 16.02.2009, 22:55:25 |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
as real_price @nr:=@nr+1,
chyba zjadles przecinek: as real_price, @nr:=@nr+1, pozatym powinno dobrze sortowac. nieraz stosowalem do sortowania wynik IF i bylo ok |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hm jednak te zapytanie, nie działa u mnie prawidłowo tz, zawsze zwraca mi takie same wartości prev i next dla każdego elementu, nie zależnie jakie sortowanie ustawie i metode.
I zamodyfikowane zapytanie o prev i next
co bym nie wstawił w order by zawsze dostane takie same wartości next i prev. Gdzie jest błąd ? |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
widac tak sie zlozylo, ze dla kazdego pola sortuje tak samo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
No ciezko cos powiedziec bez danych i przy takiej sieczce jak u ciebie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 15:47 |