Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 14 Dołączył: 14.07.2011 Skąd: Gliwice / Wrocław Ostrzeżenie: (0%)
|
Witam,
w jaki sposób mogę wybrać z tabeli losowe rekordy z określonego przedziału? Przykładowo, takie coś:
wcale nie zwróci w losowej kolejności 4 rekordów, tylko zwraca w losowej kolejności wszystko, co jest w tabeli... Z drugiej strony takie coś:
działa idealnie, zwraca 4 rekordy posortowane malejąco. Jak więc zrobić, żeby dla ORDER BY RAND() również zwróciło 4 rekordy? Ten post edytował jg44 24.11.2011, 20:07:40 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 18 Dołączył: 4.09.2010 Skąd: warszawa Ostrzeżenie: (0%)
|
jedna i druga opcja powinna zwracać 4 rekordy.
jeśli nie zwraca, sprawdź samo limit 4. jeśli dalej nic, to nie wiem - u mnie działa i to odkąd pamiętam (wczesna wersja 4) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 14 Dołączył: 14.07.2011 Skąd: Gliwice / Wrocław Ostrzeżenie: (0%)
|
Nie do końca jasno się wyraziłem. Fakt, obie opcje zwracają po 4 rekordy, ale mi chodzi o to, że mam tabelę, w niej powiedzmy 10 rekordów i chcę 4 pierwsze rekordy wyrzucić w kolejności losowej - tutaj obie te opcje zawodzą.
Nie jestem pewien, czy to w ogóle da się zrobić za pomocą zapytania? |
|
|
|
Post
#4
|
|
![]() 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
#5
|
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 14 Dołączył: 14.07.2011 Skąd: Gliwice / Wrocław Ostrzeżenie: (0%)
|
Super, dziękuję bardzo!
Przy okazji chciałbym zapytać jeszcze o jedną rzecz i żeby nie śmiecić, nie zakładać nowego tematu Mając te wylosowane rekordy, chciałbym je wstawić do innej tabeli (właściwie to update'ować). Problem polega na tym, że mam tabelę, w której są już jakieś 4 rekordy, i do każdego po kolei z nich wrzucić to, co zwróci w/w zapytanie. Jak można to zrobić? UPDATE nie przewiduje wrzucania 'hurtowej' ilości rekordów, tylko każe pojedynczo, a to delikatnie mówiąc nie jest zbyt wygodne, bo liczba update'owanych rekordów w przyszłości będzie się zmieniać (teraz jest to 4, a kiedyś może to być np. 27, itd. ...) Próbowałem tak:
Co prawda to się wykonuje, ale niestety źle, bo podzapytanie wyciąga tylko jeden rekord z tabeli 'tabela2' i update'uje go we wszystkich kolejnych rekordach w tabeli 'tabela1', zamiast wyciągać wszystkie... Ten post edytował jg44 25.11.2011, 16:17:24 |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.08.2025 - 02:05 |