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个一组的这种????求教大侠
展开
展开全部
真有10000个变量你就直接写进去或,使用exists子句
没必要分成 or id in来写,这样说不定会更慢的
或都把这些变量写到一个临时表里面,再将临时表与这个表做JOIN操作
没必要分成 or id in来写,这样说不定会更慢的
或都把这些变量写到一个临时表里面,再将临时表与这个表做JOIN操作
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只取前面N个的话可以用TOP
select * from tb where id in(top N ...)
要分成多个输出要用临时表,建立一个临时表,定义一个自增加字段id。把IN后面的结果集插入到临时表,在临时表通过id分
select * from tb where id in(top N ...)
要分成多个输出要用临时表,建立一个临时表,定义一个自增加字段id。把IN后面的结果集插入到临时表,在临时表通过id分
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这样不如把id存在一个数据表中,然后左联接查询,这样语句速度很快
比你这样一大堆in要效率高很多
这样做,还需要程序给你分拆,重新拼写sql语句,很麻烦
比你这样一大堆in要效率高很多
这样做,还需要程序给你分拆,重新拼写sql语句,很麻烦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是不是要分页?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询