0
我得到了這個mysql選擇從這裏的一些帖子在這個網站,99%的時間,它的工作很好,但有時它不會返回我要求的隨機元素的數量,和我不知道爲什麼。下面是一個失敗的一個最近的例子:選擇隨機限制不總是工作
SELECT DISTINCT movie_title
FROM movies AS r1 JOIN
(SELECT (RAND() * (SELECT MAX(movie_id) FROM movies)) AS id2
) AS r2
WHERE r1.movie_id >= r2.id2 AND movie_title != "New Moon"
ORDER BY r1.movie_id ASC LIMIT 4
答案是這樣的陣列:陣列([0] =>性愛後,[1] =>朔) 只有兩個元素,但是應該已有4。
我在我的電影網站(http://www.crosstastemovies.com)的測驗部分使用了該功能。數據庫表大約有1823部電影。 有人可以請說明這一點嗎?
謝謝
感謝您的回覆。有沒有其他方法可以返回我想要的行數? 如果RAND返回的值非常接近1,那麼可能更改RAND()或id2?... – 2013-02-11 16:03:37
我最終驗證了創建的數組。如果值的數量少於限制,我只需再次調用它。不是理想的,但工作。 – 2013-02-20 13:05:49