需求如下:根据文章id获取其上一篇文章,下一篇文章
https://blog.csdn.net/u014710520/article/details/76532187
上一篇:xxx 下一篇:xxx
SQL语句可以像下面这样写:
access_id = 3 的上下两条数据
SELECT
*
FROM
press_access
WHERE
access_id IN (
SELECT
CASE
WHEN SIGN(access_id - 3) > 0 THEN MIN(access_id)
WHEN SIGN(access_id - 3) < 0 THEN MAX(access_id)
END AS access_id
FROM
press_access
WHERE
access_id <> 3
GROUP BY
SIGN(access_id - 3)
ORDER BY
SIGN(access_id - 3)
)
ORDER BY
access_id ASC;
access_id = 3 以及上下条一共三条数据
SELECT
*
FROM
press_access
WHERE
access_id IN (
SELECT
CASE
WHEN SIGN(access_id - 3) > 0 THEN MIN(access_id)
WHEN SIGN(access_id - 3) < 0 THEN MAX(access_id)
ELSE
access_id
END AS access_id
FROM
press_access
GROUP BY
SIGN(access_id - 3)
ORDER BY
SIGN(access_id - 3)
)
ORDER BY
access_id ASC;
MySQL实现根据当前ID读取上一条和下一条记录
以下为MySQL语句演示:
https://blog.csdn.net/lutinghuan/article/details/19083757
SELECT * FROM t_news AS n ORDER BY n.`News_ID`
当前ID为4,读取上一条记录:
SELECT * FROM t_news AS n WHERE n.`News_ID` < 4 ORDER BY n.`News_ID` DESC LIMIT 0,1;
当前ID为4,读取下一条记录:
SELECT * FROM t_news AS n WHERE n.`News_ID` > 4 ORDER BY n.`News_ID` LIMIT 0,1;
其他数据库,不用limit,改用top关键字即可。
关于MySqL数据库查询当前数据的上一条和下一条数据
https://blog.csdn.net/w252064/article/details/79925017#commentsedit
mysql按行进行查询( 查询第几行到第几行记录 查询最后一行和第一行记录 查询前几行和后几行记录)
https://blog.csdn.net/qq_20545159/article/details/43636775
MySQL查询后10条数据并顺序输出
https://blog.csdn.net/qq_34835428/article/details/78720847
MYSQL数据库,查询一周内,合计每天的数量和出现的行数,没有记录的那一天就显示0
https://blog.csdn.net/liufeilong_sean/article/details/28607769
MySQL查询当前数据上一条和下一条的记录
https://blog.csdn.net/superit401/article/details/49797783
从mysql中查最后一条记录
https://blog.csdn.net/superit401/article/details/49797387