SQL 如何快速确认某条数据存在
现在是一个远程数据库,我需要增加数据A,但是在添加前我需要确认其中是否有A,我目前的做法是用SELECT*FROMTABLENAMEWHEREDATA=A;然后判断返回的...
现在是一个远程数据库,我需要增加数据A,但是在添加前我需要确认其中是否有A,
我目前的做法是用SELECT * FROM TABLENAME WHERE DATA=A;然后判断返回的表的行数,如果行数等于0,就执行添加数据的 INSERT INTO 语句。
因为每次添加数据很多,大概有几百条,现在速度特别慢。而我看其他人做的东西速度很快,只需要几秒钟不到就添加完成。同时也能判断出来是否有数据重复。
求教:我使用C#做的,对SQL不甚了了。望细致回复。
现在有2个想法,一个是加一个LIKE语句,将可能的数据都提取出来到本地DATASET,然后在本地查询是否有重复的内容。这个不知道是否比逐条SELECT会快。
另一个想法是找找看SQL里面有咩有什么语句直接确认数据A是否存在,这样是否会快很多。不过我不知道有什么语句可以做到。 展开
我目前的做法是用SELECT * FROM TABLENAME WHERE DATA=A;然后判断返回的表的行数,如果行数等于0,就执行添加数据的 INSERT INTO 语句。
因为每次添加数据很多,大概有几百条,现在速度特别慢。而我看其他人做的东西速度很快,只需要几秒钟不到就添加完成。同时也能判断出来是否有数据重复。
求教:我使用C#做的,对SQL不甚了了。望细致回复。
现在有2个想法,一个是加一个LIKE语句,将可能的数据都提取出来到本地DATASET,然后在本地查询是否有重复的内容。这个不知道是否比逐条SELECT会快。
另一个想法是找找看SQL里面有咩有什么语句直接确认数据A是否存在,这样是否会快很多。不过我不知道有什么语句可以做到。 展开
3个回答
展开全部
if not exists (select 'X' from tablename where data=A)
begin
insert into...
end
--如果数据A不存在,就执行insert操作
begin
insert into...
end
--如果数据A不存在,就执行insert操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if exists(select 1 from table where data=1)
begin
end
百度下EXISTS吧
begin
end
百度下EXISTS吧
追问
请教,这个语句的速度要比SELECT快很多么?
追答
不是比SELECT快很多。。其实就你的问题而言。。
我觉得 where data=A应该是不会很慢的。。具体你慢在哪我不知道
另外不太理解你 然后判断返回的表的行数是什么意思。。
你只需要判断A这记录是否存在而已。。这里本来就应该使用EXISTS
因为它返回布尔值,真或假。。不需要做全表扫描。。
SELECT * FROM TABLE WHERE DATA=A;
假设表有10万条数据,A有1000,你返回的就是1000条
而EXISTS在找到第一条之后就会返回TRUE。。不会再继续向下扫描了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询