![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 276 Pomógł: 3 Dołączył: 22.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Potrzebuję wyciągnąć z bazy dane w dosyć specyficzny sposób.
Mam listę osób zapisanych na turniej na żywo (część z nich dostanie promocyjne gadżety w zależności od tego kiedy się zapisali, część skorzystała z jakiejść promocji a część nie podczas zapisów). Oczywiście podczas turnieju nastąpi weryfikacja listy obecności, zbieranie wpisowego itp itd, zatem chciałbym mieć listę posortowaną alfabetycznie, ale to znów się kłóci z wyszukiwaniem osób wg daty zapisu, aby znaleźć np pierwsze 30 osób których dotyczy ta promocja (promocji jest więcej, opcji sporo i wyszukiwania też). To co chciałbym osiągnąć to numerowanie po kolei moich danych (ID się nie nadaje, bo część osób zrezygnowała i są dziury, ew ID może być ale z dziurami się źle wyszukuje i po drugie nie wiadomo, która osoba jest trzydziesta, która sześćdziesiąta itp). Mam nadzieję, że nakreśliłem ogólnie koncepcję tego, co chcę otrzymać. Zastanawiam się, czy to co chcę da się osiągnąć 1 zapytaniem (zapytaniami??) ![]() Przykładowe dane ID | Username | Promocja 1 | Zamawiam coś 1 | Zamawiam coś 2 | Płacę za obiad 1 Staszek tak tak nie tak 4 Jasiu nie tak nie nie 5 Stefan nie tak tak tak 8 Krzysiu tak tak tak tak 9 Ryszard nie tak tak tak W takiej formie będę sobie dane wyświetlał, ale chciałbym mieć te dane ponumerowanie 1,2,3,4,5... (od razu w zapyraniu SQL nie w php!) gdyż miałbym drugą listę, gdzie osoby są posortowane alfabetycznie i przy każdej osobie znajduje się numerek (ten z 1,2,3,4,5...). Wtedy mógłbym sobie poszukać nazwisko delikwenta, zobaczyć cyferkę i od razu odnaleźć ją na tej pierwszej liście Da się tak zrobić? ![]() To bardzo łatwo pozwalałoby mi znaleźc pierwsze 30 osób zapisane na turniej, które się zgłosiły na żywo i zastosowanie dla nich promocji, czy też np znalezienie pierwszych 40 osób, które zamówiły sobie coś2 albo te peirwsze 35 osób, które dostaną obiad Ten post edytował Aztech 19.10.2006, 16:32:06 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tu byl podobny problem:
Temat: ranking w SQL No, moze nie podobny, ale technika rozwiązania moze ci sie przydac. Przeczytaj caly topic. Na koncu masz wykorzystanie jednego selecta, dla zasilenia drugiego -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 276 Pomógł: 3 Dołączył: 22.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Próbuje znaleźć w manualu składnie selecta z ifami ale bezskutecznie, wiesz może gdzie to jest?
EDIT: to co wymyśliłem, teraz się jeszcze nad sortowaniem męczę wg nazwiska
EDIT2: w sumie nie było to trudne ![]()
Ten post edytował Aztech 19.10.2006, 16:59:13 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
if (@newID <> ID, @newID:=@newID+1, @newID)
zastąp tym: @newID:=@newID+1 Akurat u Ciebie IF jest niepotrzebny. Cytat w sumie nie było to trudne Sie wie ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 276 Pomógł: 3 Dołączył: 22.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie za podpowiedź, jak się z tym uporać.
Ponowię jednak pytanie, mógłbyś podać link do manuala jakiegokolwiek miejsca, gdzie można poczytać o takich trikach jak IF, bo chciałbym się doszkolić. Będę przenosił swoja stroną klubową na MySQL-a 4.1 by skorzystać z podzapytań oraz tych if'ów co mi pokazałeś, bo widzę, że wiele rzeczy które musiałem robić pętlami w php da się teraz bezpośrednio na bazie albo w widokach zrobić, będę niezmiernie wdzięczny! Zdrawim |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
hmmm, linka mowisz... a masz:
http://dev.mysql.com/doc/refman/5.0/en/index.html ![]() Zapoznaj sie ze strukturą tego manuala, a w przyszlosci szybko wszystko znajdziesz. A IFy znajduja sie tu: http://dev.mysql.com/doc/refman/5.0/en/con...-functions.html -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:52 |