sql语句 in如何限定个数?

假定select*fromtbwhereidin(),括号内有10000个id,如何将它拆分成10个whereidin()oridin()....oridin(),分为1... 假定select * from tb where id in(),括号内有10000个id,如何将它拆分成10个where id in() or id in()....or id in(),分为10个分括号,10000可能是个变量,以后遇到这个总数,就将他分成1000个一组的这种????求教大侠 展开
 我来答
c6iz
推荐于2018-04-11 · TA获得超过1417个赞
知道大有可为答主
回答量:1426
采纳率:100%
帮助的人:1047万
展开全部
真有10000个变量你就直接写进去或,使用exists子句
没必要分成 or id in来写,这样说不定会更慢的

或都把这些变量写到一个临时表里面,再将临时表与这个表做JOIN操作
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen_hongyang
2013-08-30 · TA获得超过5447个赞
知道大有可为答主
回答量:2790
采纳率:91%
帮助的人:875万
展开全部
只取前面N个的话可以用TOP
select * from tb where id in(top N ...)

要分成多个输出要用临时表,建立一个临时表,定义一个自增加字段id。把IN后面的结果集插入到临时表,在临时表通过id分
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wy_1900
2013-08-30 · TA获得超过4503个赞
知道大有可为答主
回答量:4260
采纳率:63%
帮助的人:3411万
展开全部
你这样不如把id存在一个数据表中,然后左联接查询,这样语句速度很快
比你这样一大堆in要效率高很多
这样做,还需要程序给你分拆,重新拼写sql语句,很麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
下扬州啊
2013-08-30 · TA获得超过2519个赞
知道大有可为答主
回答量:4870
采纳率:40%
帮助的人:2133万
展开全部
你是不是要分页?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式