SELECT * FORM TBl WHERE ID IN (12,123,44,555,43,444)语句超长的问题

nik_Amis 2004-01-02 01:33:48
请问个位高手

我上面这个语句,如果 IN后面的ID集合有很多,导致一条SQL语句超常该怎么搬?

有啥法子解决?

...全文
35 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nik_Amis 2004-01-02
  • 打赏
  • 举报
回复
txlicenhe(马可)

俺就要执行一条SQL,变量也可以用么?

nik_Amis 2004-01-02
  • 打赏
  • 举报
回复
1ssp(新来的)

你的方法不错,写写

不过,这样子需要额外的开销
还有没有别的办法了
txlicenhe 2004-01-02
  • 打赏
  • 举报
回复
同意(新来的)
http://expert.csdn.net/Expert/topic/2303/2303308.xml?temp=.8790552
化解字符串不能超过8000的方法

nik_Amis 2004-01-02
  • 打赏
  • 举报
回复
如果超过了一条SQL语句的长度怎么办?

一条SQL最多允许多少字符?
1ssp 2004-01-02
  • 打赏
  • 举报
回复
不要那样做,速度是很慢的.相当于id=12 or id=123 or id=44....
先建立一个表,把上述数据写入表中,建立索引.
然后.
SELECT * FORM TBl WHERE ID IN (select id from tablename)
gmlxf 2004-01-02
  • 打赏
  • 举报
回复
判断()里面的长度,超过了截取。

id in (1,2,3...) or id in (444,445...) or id in (...)

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧