考虑到我的第一个查询是从名为table1
的表中选择最后5行:
SELECT * FROM table1 ORDER BY id DESC LIMIT 5
我如何管理我的第二个查询得到任何3个随机行,不包括最后5(所以没有办法,我得到任何从第一个查询的5行)?
我考虑了limit,但是我没有构造这个查询。
同时,我将第一个查询中的id插入到一个数组中,并根据随机的id检查它们。但我想知道是否有一个更简单的方法来完成(也许纯SQL)?
SELECT t.* FROM table1 t, (
SELECT id FROM table1 ORDER BY id DESC LIMIT 5,1
) as x
WHERE t.id <= x.id
ORDER BY RAND()
LIMIT 3
SELECT *
FROM table1
WHERE id NOT IN (?, ?, ?, ?, ?)
ORDER BY RAND()
LIMIT 3