Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> limit i rand()
zdzichu
post
Post #1





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 28.08.2006

Ostrzeżenie: (0%)
-----


Witajcie.
Próbuję pobrać losowo, jeden z N ostatnio dodanych rekordów do bazy (sortowany po id DESC) - wydaje mi się, że to bardzo proste, ale jednak nie potrafię wpaść na poprawne rozwiązanie.
  1. SELECT * FROM tabela ORDER BY id DESC,RAND() LIMIT 1

tak oczywiście nie działa... z góry dzięki za wszelkie podpowiedzi
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Mistrzu a po co ci ten DESC skoro 1 rekord wyciagasz (IMG:style_emoticons/default/questionmark.gif) ? chcesz go od tylu zaprezentować.
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




  1. SELECT * FROM (SELECT * FROM tabela ORDER BY id DESC LIMIT 10) t ORDER BY RAND() LIMIT 1

Spróbuj w ten sposób aczkolwiek dawniej MySQL miał problemy z klauzulą LIMIT w podzapytaniu więc głowy nie dam, że nie wywali błędu. Teoretycznie powinno zwrócić 1 losowy rekord spośród 10 ostatnio dodanych.
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Spróbuj w ten sposób aczkolwiek dawniej MySQL miał problemy z klauzulą LIMIT w podzapytaniu

Jest problem, ale przy używaniu podzapytań w ramach WHERE (IN/SOME/ALL/ANY). We from wszystko działa poprawnie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 22:17