前言,在我们的业务逻辑中,很有可能会遇到这样的情况。

 

1.我要更新一条记录的值。

2.但是我不确定这条记录存不存在???

3.那如果存在?我就更新,如果不存在,我就插入!

 

那么如果这样,一般情况下,我就要发出三条sql,第一条sql查询这条记录,然后用程序判断,如果存在,则更新,如果不存在,则插入。

 

但是这样,就略显麻烦了,而且要发出三条sql,那么,其实是有办法一次性解决的。

 

下面给出sql

 

 1 BEGIN
 2     #定义一个变量来保存该记录是否存在
 3     declare num int;
 4     #这条sql,就是查询对应的记录有多少条,注意 into num 这两句话,就是把count(*) 查出的值,赋给到num中
 5     select count(*) into num from t_count_view where TO_DAYS(now())=TO_DAYS(day);
 6     #接下来的就是判断了,注意,判断是否等于,只有一个等于号
 7     if(num=0)
 8     #等于号之后,还要写一个Then,代表条件成立后要执行的sql
 9         Then
10         insert into t_count_view(view_people,view_num,day)values(1,1,now());
11   #else可以直接用,不需要加then
12     else
13         update t_count_view set view_people=view_people+1;
14     #但是当if使用完之后,一定要写end if,代表着if的条件判断结束了
15   end if;
16 END

 

相关文章:

  • 2021-10-03
  • 2022-12-23
  • 2022-12-23
  • 2021-07-27
  • 2021-06-26
  • 2021-09-08
猜你喜欢
  • 2022-01-11
  • 2021-11-04
相关资源
相似解决方案