mysql - ORDER BY 和 LIMIT 2 个不同的参数

标签 mysql limit


我有一个表events,其中包含timestamp。 我想SELECT两个事件,即下一个事件和过去的最后 8 个事件。
对于两个不同的查询,它将是:
1)

SELECT * FROM events WHERE timestamp > timeNow ORDER BY timestamp LIMIT 0,2

2)

SELECT * FROM events WHERE timestamp < timeNow ORDER BY timestamp DESC LIMIT 0,8

是否可以只进行一次查询?

谢谢

最佳答案

尝试 UNION or UNION ALL

SELECT * FROM events WHERE timestamp > timeNow ORDER BY timestamp LIMIT 2
UNION ALL
SELECT * FROM events WHERE timestamp < timeNow ORDER BY timestamp DESC LIMIT 8;

此外,请记住LIMIT 8 相当于LIMIT 0, 8。这样做的原因是 LIMIT 0, 8 的意思是“从第 0 行开始并将返回的行数限制为 8”

关于mysql - ORDER BY 和 LIMIT 2 个不同的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16853304/

相关文章:

apache2 - 如何限制apache2中每个虚拟主机的连接数?

php - 检查数据库中是否存在分隔符之间的短语的查询

PHP 从数据库填充下拉菜单值

php - MySQL 返回所有结果而不重复数据

php - 如何根据PHP中的值合并两个数组?

mysql - 统计最近 7 天内添加的广告的 SQL 查询

java - 我可以限制可以绘制的 JTextField 中的文本长度,同时仍然存储全文吗?

java - 如何限制 JTable 及其内部表模型的大小

MySQL 联合、连接和限制

mysql - AUTO_INCREMENT达到极限后如何处理?