mysql 怎么用查询语句查询某条数据的前后两条数据

mysql 怎么用查询语句查询某条数据的前后两条数据,第1张

1、执行sql语句:SELECT * FROM `article` WHERE catalog_id=13 and article_id<70+2 and article_id>70-2

2、在实际使用的时候70这里是要传参数进去的,当然是参数+2和参数-2,应该是大于等于和小于等于。语法肯定没错,只是写那么个意思,你不想要70这个值只需要在程序里面把他去掉就可以了。

如果你说前后的article_id不是固定间隔的,那也有办法,你可以分别查两次,然后用union把数据组合在一起,比如:SELECT * FROM `article` WHERE catalog_id=13 and article_id>70 order by article_id limit 0,2 union SELECT * FROM `article` WHERE catalog_id=13 and article_id<70 order by article_id desc limit 0,2这样查询效率会低,暂时想到的就是这个方法了

select top 2 * from 表名 where f1=1//这求出fl=1的前两条

select top 2 * from 表名 where f1=2//这求出fl=2的前两条

select top 2 * from 表名 where f1=1 union select top 2 * from 表名 where f1=2//求出fl=1的前两条并上fl=2的前两条

//不知道我明不明白你说的意思,我感觉我理解可能有误


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9741773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存