【发布时间】:2016-11-30 02:55:43
【问题描述】:
注意:可能重复的 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()
【问题讨论】:
-
为什么不在
WHERE子句中添加另一个条件以限制到某个范围?LIMIT子句仍应返回您想要的记录数,假设有那么多可用记录。 -
mysql RAND() LIMIT的可能重复
-
@CoderofCode 我看到了那个帖子,但是我的 ORDER BY 和 LIMIT 已经在一起了。
-
@TimBiegeleisen 如何在 WHERE 子句中实现我的 LIMIT OFFSET?
-
样本数据。示例输出。