php - SQL选择最后一个查询中不重复出现的3个随机行

标签 php mysql sql

考虑到我的第一个查询是从名为 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/

相关文章:

PHP - 从数据库中获取信息(复杂)

php - MYSQL 查询 - 在当前查询中包含我关注的人的帖子

java - 如何在hibernate中执行sql查询

sql - 查询具有特定特征的连续行

php - 如何检查mysql在while循环中获取的行是否相同

用于计算 html 表中值的平均值的 PHP 循环

php - php mysql中的消息系统

php - 获取具有多个子表的条目

MySQL如何选择字段或如果字段为空则设置为空?

php - 修复 mysql 错误 mysqli_stmt_bind_param()