注意:可能重复的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()