MYSQL 插入数据前,判断是否存在,存在就插入,怎么有错

废话连篇 2018-07-10 01:57:05
if not exists (SELECT * FROM Site_About WHERE ID=2) then
Insert into Site_About(ID,PropertyType,Title,Body,SortIndex) values(2,'1','222','222',1)
else
update Site_About set PropertyType='1', Title='222',Body='222',SortIndex=1 where ID=2
end if


这个语句有错误
...全文
771 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_42783813 2018-07-30
  • 打赏
  • 举报
回复
REPLACE INTO 直接解决,有则更新,无则插入,舒舒服服的!
zjcxc 2018-07-11
  • 打赏
  • 举报
回复
将 ID 设置为主键,或者建立唯一索引
然后你就可以直接用 REPLACE INTO 或 INSERT INTO ON DUPLICATE UPDATE
你再猜 2018-07-10
  • 打赏
  • 举报
回复
建议你还是使用 replace into 存在就插入 不存在就删除 这个有个缺点就是主键ID会急剧增加
o前男友o 2018-07-10
  • 打赏
  • 举报
回复
有判断的最好是写存储过程,感觉你应该是没有分号结尾。
DELIMITER $$

DROP PROCEDURE IF EXISTS `qqq`$$

CREATE PROCEDURE `qqq`()
BEGIN
if not exists (SELECT * FROM aaa WHERE ID=37) then
Insert into aaa(id,val1) values(37,'1');
else
update aaa set val1='1' where ID=37;
end if;
END$$

DELIMITER ;
iamboy_11 2018-07-10
  • 打赏
  • 举报
回复
你这个语句的意思是不存在id=2的记录的话就插入记录,存在的话就更新记录,请问下报什么错误?

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧