永发信息网

mysql中先判断数据是否存在,如存在则增加数量,不存在则增加一条记录

答案:3  悬赏:40  手机版
解决时间 2021-11-08 12:46
  • 提问者网友:沉默菋噵
  • 2021-11-07 22:12
mysql中先判断数据是否存在,如存在则增加数量,不存在则增加一条记录
最佳答案
  • 五星知识达人网友:拜訪者
  • 2021-11-07 22:28
比如想往表中插入一条数据,如果表中没有该条数据才插入,如果已经存在该条数据就不插入。

首先,在创建表时,将不需要重复的字段设置为unique,然后在插入时,使用insert ignore语句。

例如:(数据库用的是mysql5)
创建一张表用来存储用户:

create table user_info
(
   uid mediumint(10) unsigned NOT NULL auto_increment primary key,
   last_name char(20) not null,
   first_name char(20) not null,
   unique ( last_name, first_name)
);
alter table anser add UNIQUE (last_name,first_name)插入数据:

insert ignore into user_info (last_name,first_name) values ('x','y');这样一来,如果表中已经存在last_name='x'且first_name='y'的数据,就不会插入,如果没有就会插入一条新数据。



——————注意,以上是我直接复制粘贴的信息,以下为原创
然后捕捉查询结果,如果确实已经执行了插入操作,那么就结束sql
否则,就执行一次update操作


这样的话,我觉得程序运行性能是较好的

全部回答
  • 1楼网友:渡鹤影
  • 2021-11-07 22:56
不一定要在mysql语句中判断。在程序里判断一样。追问如果可以的话,直接写语句就行,其他的解决方法不需要,谢谢追答你这sql语句。即使没有12345。报错的也不是你的sql语句报错。追问仔细看问题,这语句已经在用户有这个物品时运行会正确添加数量,但如果用户没有此物品,就会出错追答问题我看的很仔细。你单独运行这sql语句。即使没有12345.只是更新影响的数量为0而已。

绝对不可能报错。你这问题我已经有思路。但是需求还不是很明确。因为我找不到出问题的地方。
  • 2楼网友:躲不过心动
  • 2021-11-07 22:46
报什么错误?可以贴出来?
:count
:username都是参数?追问是参数,:count是手动输入的参数,:username是手动输入的用户名追答那到底报什么错误?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯