php - mysql 选择之前 n 行和之后 n 行

标签 php mysql union

我正在尝试创建一个 mysql 查询来选择之前的 5 行和根据当前 ID 的 5 行。这是我尝试使用的查询:

SELECT * FROM posts WHERE PID<='10' ORDER BY PID DESC LIMIT 7
UNION ALL
SELECT * FROM posts WHERE PID>'10' ORDER BY PID ASC LIMIT 6

但由于某种原因,查询无法正常工作。我错过了什么吗?我在论坛帖子中找到了这个解决方案。

最佳答案

试试这个:

(SELECT *
 FROM posts
 WHERE PID <= '10'
 ORDER BY PID DESC LIMIT 7
 )
UNION ALL
(SELECT *
 FROM posts
 WHERE PID > '10'
 ORDER BY PID ASC LIMIT 6
 )
ORDER BY PID ASC;

sqlfiddle demo

关于php - mysql 选择之前 n 行和之后 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20443143/

相关文章:

php - 在 PHP 中转义 iframe srcdoc 值的安全方法?

javascript - 如何在页面加载时使用 mysql 查询结果设置单选按钮值后触发 javascript 函数

php - 动态数据透视表的问题

php - MySql UNION 具有应用默认值的不同列?

php - 在 PHP 中格式化 DateTime 列

php - 在PHP中查找格式为 'mm/dd/yyyy'的两个日期之间的天数

mysql - SQL按百分比获取相似的 "match"结果

mysql - 将UNION查询的结果保存在MYSQL存储过程的局部变量中

php - 在 MacOS Sierra 上找不到 OpenSSL

php - 编辑 : Class Zend\Db\Adapter\Adapter not found