根据id查询前一篇后一篇

根据id查询前一条后一条(共两条)

#{articleId}(articleId带花括号)为传过来的参数,即id

<!-- 根据文章id查询前一篇和后一篇文章 -->
	<select id="selectPreAfterArticle" parameterType="long" resultMap="ArticleImageResultMap" >
	SELECT * FROM article
	WHERE article_id IN
	(
	SELECT
	CASE
	WHEN SIGN(article_id - #{articleId}  ) > 0 THEN MIN(article_id)
	WHEN SIGN(article_id - #{articleId}  )  <  0 THEN MAX(article_id)
	END
	AS article_id
	FROM article
	WHERE article_id  <> #{articleId}  
	GROUP BY SIGN(article_id - #{articleId}  )
	ORDER BY SIGN(article_id - #{articleId}  )
	)
	ORDER BY article_id ASC
	</select>

根据id查询前一条,本条和后一条(共三条)

	SELECT * FROM article
WHERE article_id IN 
(
SELECT 
CASE 
WHEN SIGN(article_id - #{articleid}) > 0 THEN MIN(article_id) 
WHEN SIGN(article_id - #{articleid}) < 0 THEN MAX(article_id) 
ELSE article_id
END 
AS article_id
FROM article 
GROUP BY SIGN(article_id - #{articleid}) 
ORDER BY SIGN(article_id - #{articleid})
) 
ORDER BY article_id ASC;




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值