![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Witam serdecznie,
Mam taką tabelę:
Chciałbym za pomocą 1 zapytania wyświetlić najpierw produkty promowane (czyli te które mają w kolumnie promowanedata "ważną datę") - a następnie pozostałe rekordy (te których promocja minęła lub nigdy nie były promowane). Produkty promowane wiem że mogę wyświetlić poprzez: SELECT * FROM cms_pojazd WHERE DATE(promowanedata) >= DATE(NOW()) - ale czy da się połączyć to w 1 zapytanie ze zwykłymi (SELECT * FROM cms_pojazd)? Bardzo proszę o pomoc, Northwest Próbowałem takie coś: SELECT * FROM cms_pojazd where $selkateg enable ='1' $typo ORDER by promowanedata DESC, nazwa ASC ale nie poprawnie sortuje ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 167 Pomógł: 35 Dołączył: 29.12.2014 Skąd: Otwock Ostrzeżenie: (0%) ![]() ![]() |
Może spróbuj UNION?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
z tym UNION'em nie bardzo chce to działać jak powinno
![]() może opiszę jeszcze raz co chciałbym uzyskać: a) wyświetlenie alfabetycznie na pierwszych pozycjach promowane ogłoszenia (im dłużej ważne - tym wyżej) ![]() Czyli: - Ogłoszenie premium ważne do grudnia - Ogłoszenie premium ważne do listopada - Ogłoszenie premium ważne do marca - "A" - ogłoszenie - nigdy nie premium - "B" - ogłoszenie - nigdy nie premium - "C" - ogłoszenie - "kiedyś" premium - "D" - ogłoszenie nigdy nie premium itp |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Ale z drugiego zapytania musisz wyrzucić te, które Ci się już w pierwszym znalazły. I dopiero wtedy UNION między nimi. Inaczej duplikaty Ci się porobią.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
No właśnie na tym utknąłem.... da się to zrobić 1 zapytaniem?
Czy mógłbym prosić o takie zapytanie? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zrób to normalnie UNION czyli 1 zapytanie które wybiera Ci Premium i drugie Nie premium
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
no tak, ale to 2 zapytania... czyli nie da się tego zrobić w 1 zapytaniu?
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Przecież to będzie 1 zapytanie :| złożone z 2 podzapytań.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Możesz zrobić "sztuczną kolumnę z wykorzystaniem instrukcji warunkowej IF, tzn. odejmujesz czas zakonczenia promocji od czasu aktualnego i jeśli > 0 to zostawiasz różnice, jak < 0 to wstawiasz 0. Sortujesz potem po dwóch kolumnach - po "sztucznej" i nazwie.
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
... order by if(promowanedata >=now(),promowanedata, \'1980-09-09\') desc
Prosze, jedno zapytanie ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Dziękuję bardzo. Jest prawie dobrze
![]() Problem jest w tym że: a) nie sortuje ogłoszeń "nie premium" - alfabetycznie ![]() Mam takie zapytanie: SELECT * FROM cms_pojazd where enable ='1' order by if(promowanedata >=now(),promowanedata, '2015-01-19') desc Jeszcze raz dziękuje za pomoc ![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat ogłoszenia których termin "minął" = nie są już traktowane jako premium Jak napisales na poczatku tak dostales ![]() ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Przepraszam, głupio to napisałem.... Później to dopisałem, ale chyba nie jasno
![]() Jeśli mógłbyś mi pomóc z tym co napisałem w poprzednim poście, to byłbym bardzo wdzięczny |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
order by if(promowanedata >=now(),promowanedata, \'1980-09-09\') desc, pole_do_sortowania_alfabetycznego
A jesli interesuje cie jakakolwiek promowanadata to: order by if(promowanedata is not null ,promowanedata, \'1980-09-09\') desc, pole_do_sortowania_alfabetycznego bo zakladam, ze gdy nie byla promowana to miala wartosc NULL -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
dziekuje
![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Choc nie rozumiem, czemu nie dzialalo ci poprostu to:
order by promowanedata desc, pole_do_sortowania_alfabetycznego to powinno samo z siebie robić to co chcesz bez żadnego kombinowania -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Promowane ogłoszenia "wygasłe" sortował źle;)
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Zrozumialem, z ktoregos kolejnego posta, ze wygasle tak czy siak mialy byc wyzej nad w ogole nigdy nie promowanymi. Jesli nie, to faktycznie nie mialo to prawo dobrze działać
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 5.07.2025 - 15:17 |