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

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

直接上代码

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

注意,要把begin/end卸载存储过程中

存储过程写法

原文地址:https://www.cnblogs.com/pbluesky/p/12683718.html

时间: 2024-11-06 10:01:57

mysql判断一条记录是否存在,如果存在,则更新此语句,如果不存在,则插入的相关文章

navicat MySQL 只有1000条记录

/*************************************************************************** * navicat MySQL 只有1000条记录 * 说明: * 早上跑来了,查看一下数据库中数据情况,结果navicat只能看到1000条记录, * 查看mysql数据库结果是有全部的数据,原因是navicat只能显示1000条记录. * * 2016-10-29 深圳 南山平山村 曾剑锋 *************************

mysql 查询一条记录的下一条和上一条记录

如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from table_a where id = (select id from table_a where id < {$id} [and other_conditions] order by id desc limit 1) [and other_conditions]; 查询下一条记录的SQL语句(如果有其他的

mysql 查询随机条记录的sql语句和php计算概率

最近在网上找了下mysql查询随机的几个sql,我把最终的记录下来. SELECT * FROM uchome_mtag AS a JOIN (SELECT MAX(tagid) AS id FROM uchome_mtag) AS b ON (a.tagid>=FLOOR(b.id*RAND())) LIMIT 50 我试验后发现一个问题,当你的表里的总数和想要得到的条数很接近时,可能会不理想,有可能你有10条,你想查出随机的8条时,却只给出了5条的结果. 应该是那个大于等于造成的吧. 还有p

[lua, mysql] 将多条记录数据组合成一条sql插入语句(for mysql)

-- 演示将多条记录数据组合成一条sql插入语句(for mysql) function getTpl0(tname) -- 获取表各个字段 local t = { tpl_pack = {"packId","itemId","`group`","num","rate","rateType"}, } for k, v in pairs(t) do if tname == k then r

mysql insert一条记录后 返回创建记录主键id的方法

mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的值呢? 方法一:是使用last_insert_id mysql> SELECT LAST_INSERT_ID(); 产生的ID 每次连接后保存在服务器中.这意味着函数向一个给定客户端返回的值是该客户端产生对影响AUTO_INCREMENT列的最新语句第一个 AUTO_INCREMEN

mysql删除一条记录

mysql如何删除一条记录 delete from 表名 where 条件 实例: use db1 delete from tb1 where id = 1; 原文地址:https://www.cnblogs.com/effortsing/p/10393229.html

根据mysql某一条记录生成对应实体类的初始化

数据记录必须如下格式(且最后一个逗号分隔符的右边不能为空) OUB_SHIPMENT_HEADER_ID,SHIPMENT_NO,STATUS,STATUS_EXT,PRIORITY 12313412416491,GF1712262040050,100,0 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java

mysql 显示每条记录行号

1.1 语法 SELECT @rowno:[email protected]+1 as rowno,r.* from t_article r,(select @rowno:=0) t 1.2 实例 现有 score表,(s_id 为学生id,c_id为科目id,s_score为分数),现欲获得科目id为'01'的成绩排行, sql如下: 结果如下: 原文地址:https://www.cnblogs.com/zad27/p/10092527.html

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,性能提高了不少.