注意:可能重复的mysql RAND() LIMIT没有解决答案,因为在我的sql中,我的ORDER BY和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()

最佳答案

如果我正确理解了您的问题,一种选择是进行子选择,以便您可以在下订单之前先进行限制:

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()

10-08 05:38