Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: limit i rand()
Forum PHP.pl > Forum > Bazy danych
zdzichu
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
skowron-line
Mistrzu a po co ci ten DESC skoro 1 rekord wyciagasz questionmark.gif? chcesz go od tylu zaprezentować.
phpion
  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.
erix
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.