2016-11-30 43 views
0

注意:可能的重複mysql RAND() LIMIT沒有解決答案,因爲在我的sql中,我的ORDER BY和LIMIT已經在一起。在LIMIT中顯示唯一的隨機記錄

我想表現出獨特的隨機記錄,但該範圍內,但是當我在SQL中使用RAND()它拉隨機記錄,超出我的極限範圍:

SELECT DISTINCT cases.caseid, cases.img, casetypes.casetypeid, cases.cost 
FROM cases, casetypes 
WHERE cases.caseid = casetypes.caseid AND casetypes.mastercaseid = $mastercaseid 
ORDER BY RAND() 
LIMIT $lastrow, $perPage 

編輯:這工作了我基於以下答案:

SELECT * FROM (
SELECT DISTINCT cases.caseid, cases.img, casetypes.casetypeid, cases.cost 
FROM cases, casetypes 
WHERE cases.caseid = casetypes.caseid AND casetypes.mastercaseid = $mastercaseid 
LIMIT $lastrow, $perPage 
) x 
ORDER BY RAND() 
+0

爲什麼不在「WHERE」子句中添加另一個條件來限制某個範圍?假設有許多可用的,那麼'LIMIT'子句仍然應該返回你想要的記錄數。 –

+0

可能重複的[mysql的RAND()限制](http://stackoverflow.com/questions/13797553/mysql-rand-limit) –

+0

@CoderofCode我看到那篇文章,但我的ORDER BY和LIMIT已經在一起。 – obreezy

回答

0

如果我正確理解你的問題,一種選擇是做一個子查詢,使您通過做訂單之前,你能做的極限:

SELECT * FROM (

SELECT DISTINCT cases.caseid, cases.img, casetypes.casetypeid, cases.cost 
FROM cases, casetypes 
WHERE cases.caseid = casetypes.caseid AND casetypes.mastercaseid = $mastercaseid 
LIMIT $lastrow, $perPage 
) x 

ORDER BY RAND() 
+0

嗯,我真的不明白這一點。似乎不適合我。 – obreezy

+0

您可以將您的示例與我的特定SQL集成嗎?我沒有看到我能做到這一點,但也保持我的列可訪問。 – obreezy

+0

@obreezy完成上述工作嗎? – David542