寻求不用not In 查询语句

lilinxin 2007-12-18 11:11:44
数据库有a表,表中有3个字段 fldid(主建,索引),fldusername,fldUserPwd,fldOnlineflag ,保存有200w数据,
现编写程序生成一个B集合 (1,5,6,99.....)大约几百条数据
目的 :查询表fldid字段符合集合B的数据置fldonlineflag=1
之前sql语句如下
update set fldonlineflag=1 where fldid in (1,5,6,99....)
在查询分析器上不能执行。超级郁闷!
请高手寻求帮助


...全文
89 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fwacky 2007-12-18
  • 打赏
  • 举报
回复


drop table lilinxin
create table lilinxin
(id int primary key,
name varchar(10),
fldonlineflag char(1)
)

insert into lilinxin select 1,'AAAA',''
insert into lilinxin select 2,'BBBB',''
insert into lilinxin select 3,'CCCC',''
insert into lilinxin select 4,'DDDD',''

select * from lilinxin

update lilinxin set fldonlineflag = '1' where id in (2,4)

select * from lilinxin
/*
id name fldonlineflag
1 AAAA
2 BBBB 1
3 CCCC
4 DDDD 1


*/
lilinxin 2007-12-18
  • 打赏
  • 举报
回复
没有生成B表 ,是用vb编写的生成的集合b --->(1,3,6,8.......)
wzy_love_sly 2007-12-18
  • 打赏
  • 举报
回复
declare @tb table (id int)

insert into @tb select 1
insert into @tb select 2
insert into @tb select 3
insert into @tb select 4

declare @id varchar(20)
set @id='2,3'
select * from @tb where charindex(','+cast(id as varchar)+',',','+@id+',')>0
id
2
3
fwacky 2007-12-18
  • 打赏
  • 举报
回复

update set fldonlineflag=1 where fldid in (1,5,6,99....) --错误
--------
update a表 set fldonlineflag=1 where fldid in (1,5,6,99....)

liangCK 2007-12-18
  • 打赏
  • 举报
回复
update a set fldonlineflag=1
from tb a,(select fldid=1 union all select fldid=5) b
where a.fldid=b.fldid
wzy_love_sly 2007-12-18
  • 打赏
  • 举报
回复
如果b是表用inner join
wzy_love_sly 2007-12-18
  • 打赏
  • 举报
回复
用charindex()

34,838

社区成员

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

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