符合条件的记录有则修改没有则添加的小优化技巧

通常的写法:

if(select count(1) from table where id=XXX)=0

  insert into XXX

else

  update table set xxx where id=XXX

优化后的写法:

update table set xxx where id=XXX

if @@rowcount=0

  insert into XXX

第一种情况,无论如何都会执行两次操作,第二种情况只会运行一次操作!!

时间: 2024-11-22 23:23:33

符合条件的记录有则修改没有则添加的小优化技巧的相关文章

mssql数据库游标批量修改符合条件的记录

//需求:由于项目刚上传,没有票数,为了表现出一定的人气,需要在一开始把各项目的票数赋一个值 , 但每个项目不能一样,否则容易看出问题,呵呵 . DECLARE @Id varchar(50) DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT Id FROM dbo.kinpanAwardProject where session=9) --查出需要的集合放到游标中 OPEN My_Cursor; --打开游标 FETCH NEXT FROM My_Curs

hibernate连接mysql,查询条件中有中文时,查询结果没有记录,而数据库有符合条件的记录(解决方法)

今天在另一台服务器上重新部署了网站,结果出现了以下问题: ——用hibernate做mysql的数据库连接时,当查询条件中有中文的时候,查询结果没有记录,而数据库中是存在符合条件的记录的. 测试了以下,发现不加条件查询可以查到,加上查询条件包含中文就无法找到记录. 百度发现,以下两篇文章很有帮助. http://gzxabcdefg.blog.163.com/blog/static/23451794201081554816892/ http://bbs.51cto.com/thread-1031

mssql数据库游标批量改动符合条件的记录

//需求:因为项目刚上传,没有票数,为了表现出一定的人气,须要在一開始把各项目的票数赋一个值 , 但每一个项目不能一样,否则easy看出问题,呵呵 . DECLARE @Id varchar(50) DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT Id FROM dbo.kinpanAwardProject where session=9) --查出须要的集合放到游标中 OPEN My_Cursor; --打开游标 FETCH NEXT FROM My_C

无符合条件的记录,SUM函数返回NULL。返回0而不是Null

但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如下面的方法来处理: SELECT COALESCE(SUM(isnull(filed,0)), 0) as [filed1] FROM table1 行了,这下就不用费事去处理返回结果是否为NULL的情况了. COALESCE 函数的意思是返回参数列表中第一个为空的值,该方法允许传入多个参数,该函数也是SQL中的标准函数.

oracle根据多个条件分别修改符合条件的记录

declare i number; temp_sum number; temp_hfmpcode temptable.pubname%type; --temptable.pubname%type指的是temptable表的pubname字段的类型 temp_fullname temptable.pubcode%type; begin select count(*) into temp_sum from temptable b; i := 1; while i<=temp_sum loop --1

mysql判断表中符合条件的记录是否存在

IF EXISTS( SELECT 1 FROM T_BD_BuildGroupBaseInfo WHERE F_BuildGroupID=P_StructureId LIMIT 1) THEN SET V_isBuildingGroup=1; ELSE SET V_isBuildingGroup=0; END IF; 当然这里limit 1很重要.这要mysql找到一条记录后就不会在往下找了.这里执行所影响的行数不是0就是1,性能提高了不少.

django在读取数据库时未筛选到符合条件的记录会报错

(1)报错情况如下: DoesNotExist: Publisher matching query does not exist. (2)处理方法: try:    p = Publisher.objects.get(name='Apress')except Publisher.DoesNotExist:    print "Apress isn't in the database yet."else:    print "Apress is in the database.

将时间转换成数字,把数字转换成时间,均匀取一定时间间隔(比如每91秒取一条记录)内的符合条件的记录

/****** Script for SelectTopNRows command from SSMS  ******/SELECT  [id]      ,[tagDate],CAST(tagdate as float)*10000000000 as numdate      ,[HZ105_315HH]      ,[HZ105_DO315AI]      ,[HZ105_FI315AI]      ,[HZ105_PH315AI]      ,[HZ105_PI315AI]      ,[

mysql随机查询符合条件的几条记录

随机查询,方法可以有很多种.比如,查询出所有记录,然后随机从列表中取n条记录.使用程序便可实现.可是程序实现必须查询出所有符合条件的记录(至少是所有符合条件的记录id),然后再随机取出n个id,查询数据库.但是效率毕竟没有数据库中直接查询得快.下面介绍mysql中怎样随机查询n条记录. 1.最简单的办法order by rand(),示例 select * from question q where q.`level`=1 order by rand() limit 1; 此写法,可以将查询出的