![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 16.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Cześć
Mam tabelę, w której w jednej z kolumn znajdują się jakieś powtarzające się wartości. Niech to będą na przykład A, B, C, D, E, F. Potrzebuję pobrać np. rekordy A, ale tylko te, które występują bezpośrednio po np. B albo po np. B lub C. Na przykład: 1. B 2. A 3. D 4. A 5. C 6. A 7. B 8. A Dla "A po B" zapytanie zwróci rekordy 2 i 8. Dla "A po B lub C" zapytanie zwróci rekordy 2, 6 i 8. Jak takie zapytanie skonstruować? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Jesi chcesz to zrobic tylko na poziomie baze, to musisz skorzystac ze zmiennych w mysql.
W zmiennej przechowujesz aktualną wartosc, a przy nastepnym rekordzie porownujesz ją do B lub C. Ot i wszystko ![]() -------------------- "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: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Tak na szybko... Dlatego MUSI zachodzić warunek ciągłości id. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Moja wersja nie wymaga ciaglosci
![]() -------------------- "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: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Moja jest wydajniejsza, wymaga tylko i wylacznie jednego glownego SELECT a nie jakis dzikich kombinacji
![]() Twoja ma jednak jedną wielka zalete: jest podana na tacy, podczas gdy moją autor musi sam sklecic ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
To raczej taka 'wprawka' dla samego siebie... Staram się wszystko rozwiązać via SQL. I to najlepiej w bazie. Na razie nie mam z tym problemów... Co więcej - piszę w czystym ANSI SQL. Powyższe zadziała zarówno w MySQL, jak i postgreSQL. Jakbym miał "typowane" to wtedy bym optymalizował...
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ale moje tez jest na czystej bazie. zero php czy innych takich pierdol
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 16.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedzi. Niezaprzeczalnym plusem rozwiązania mmmmmmm jest podanie go na tacy
![]() ![]()
Jak dotąd ilość tych rekordów do przetworzenia jest niewielka więc wydajność takiego rozwiązania nie ma dla mnie większego znaczenia. Problem pojawi się gdy będę chciał rozszerzyć kryteria ich wyboru i znacznie wzrośnie ich ilość. Dlatego chciałem zdać te obliczenia na bazę danych. Niestety, poza podstawowymi poleceniami SQL niewiele z niego kojarzę ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
-------------------- "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: 8 Pomógł: 0 Dołączył: 16.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo Wam dziękuję. Oba rozwiązania bardzo mi pomogą..
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 16:08 |