考虑到我的第一个查询是从名为 table1
的表中选择最后 5 行,如下所示:
SELECT * FROM table1 ORDER BY id DESC LIMIT 5
如何管理第二个查询以获取任意 3 行(不包括最后 5 行)(因此我无法从第一个查询中获取 5 行中的任何一行)?
我考虑过限制,但我没有运气构建查询。
同时,我将第一个查询中的 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
关于php - SQL选择最后一个查询中不重复出现的3个随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7019236/