我想在MySQL处理数据前先判断下有没有该ID的记录,如果有则更新该条数据,如果没有则插入该条数据
答案:2 悬赏:0 手机版
解决时间 2021-03-17 04:44
- 提问者网友:鼻尖触碰
- 2021-03-16 17:27
请问一条SQL可以完成我想做的事情吗
最佳答案
- 五星知识达人网友:十年萤火照君眠
- 2021-03-16 17:48
使用insert into on duplicte key update,语法类似于下面
INSERT INTO t (t.c1, t.c2, t.c3)
VALUES ('v1','v2','v3')
ON DUPLICATE KEY UPDATE
t.c3 = 'v3';
INSERT INTO t (t.c1, t.c2, t.c3)
VALUES ('v1','v2','v3')
ON DUPLICATE KEY UPDATE
t.c3 = 'v3';
全部回答
- 1楼网友:何以畏孤独
- 2021-03-16 18:22
#定义一个变量来保存该记录是否存在
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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯