日期:2014-05-18  浏览次数:20989 次

求助:SQL 数据快速判断
现在做的项目要求在数据库中添加数据,添加之前需要判断数据是否存在。例如数据A,我首先使用
select * from Table where value = A;
然后判断得到的数据的行数,如果=0,那么我认为没有数据,执行INSERT INTO 语句,添加数据。

但是现在发现这么做效率很低,一共100行数据,要3分钟才能完成。
而别人写的只需要3秒钟就可以完成。。。费解。

现在想知道是否有什么SQL语句可以直接判断某条数据是否存在,要比我遍历SELECT 快很多。
或者我是否需要根据A的内容用LIKE语句先获取一个表,然后在这个表内做遍历查询?



------解决方案--------------------
如果是SQL SERVER的话,可以这样

SQL code

if not exists(select * from Table where value = A)
    insert into .....

------解决方案--------------------
探讨
求教1#方法,是否会比我直接用SELECT快很多? 现在主要是在效率上差太多了

还有个很丢脸的问题,是否这句可以像下面这么写;
string select = " if not exists (select * from "+Table" where value = "+A+") insert into "+Table + " ( value ) values ( "+A_")";

……

------解决方案--------------------
select count(ID) from Table where value=a

不需要使用"*",因为把所有字段查出来也要耗费一段时间,只需查询需要的字段就可以了