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是否存在,这样是否会快很多。不过我不知道有什么语句可以做到。
展开
 我来答
csuxp2008
2011-12-06 · TA获得超过6485个赞
知道大有可为答主
回答量:4704
采纳率:50%
帮助的人:2475万
展开全部
if not exists (select 'X' from tablename where data=A)
begin
insert into...
end

--如果数据A不存在,就执行insert操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jonahjeff
2011-12-06 · TA获得超过3380个赞
知道大有可为答主
回答量:3218
采纳率:38%
帮助的人:1045万
展开全部
if exists(select 1 from table where data=1)
begin

end
百度下EXISTS吧
追问
请教,这个语句的速度要比SELECT快很多么?
追答
不是比SELECT快很多。。其实就你的问题而言。。
我觉得 where data=A应该是不会很慢的。。具体你慢在哪我不知道
另外不太理解你 然后判断返回的表的行数是什么意思。。
你只需要判断A这记录是否存在而已。。这里本来就应该使用EXISTS
因为它返回布尔值,真或假。。不需要做全表扫描。。
SELECT * FROM TABLE WHERE DATA=A;
假设表有10万条数据,A有1000,你返回的就是1000条
而EXISTS在找到第一条之后就会返回TRUE。。不会再继续向下扫描了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hnwzj006
2011-12-06
知道答主
回答量:41
采纳率:0%
帮助的人:11.6万
展开全部
EXISTS命令可以实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式