mysql判断一条记录是否存在,如果存在,则更新此语句,如果不存在,则插入...

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

 

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

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

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

 

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

 

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

 

下面给出sql

 

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

上面已经给出了注释,

转载于:https://www.cnblogs.com/zhuxiaojie/p/5145768.html

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值