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

目的是实现输入用户名+数量,然后为这个用户增加12345这个编号的物品的数量characters表结构为guid、namei_instance表结构为entry、owne... 目的是实现输入用户名+数量,然后为这个用户增加12345这个编号的物品的数量

characters表结构为guid、name
i_instance表结构为entry、owner_guid、count
其中characters表的guid与i_instance表的owner_guid相对应

我写的是下面的,只能实现用户有数据记录的时候增加数量
但是因为没有判断语句,所以如果该用户名下没有12345的物品记录,运行就会出错
update i_instance, characters
set i_instance.count = count+:count
where characters.guid = i_instance.owner_guid and characters.name=:username and i_instance.Entry = 12345
额,请直接回复如何写这个语句就可以
不用写其他的解决方法, 谢谢
展开
 我来答
zzs1949
推荐于2017-11-26 · TA获得超过1600个赞
知道小有建树答主
回答量:1250
采纳率:80%
帮助的人:1121万
展开全部

比如想往表中插入一条数据,如果表中没有该条数据才插入,如果已经存在该条数据就不插入。

首先,在创建表时,将不需要重复的字段设置为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操作


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

沧桑的glans
2014-08-07 · TA获得超过297个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:158万
展开全部
不一定要在mysql语句中判断。在程序里判断一样。
更多追问追答
追问
如果可以的话,直接写语句就行,其他的解决方法不需要,谢谢
追答
你这sql语句。即使没有12345。报错的也不是你的sql语句报错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
6rl
2014-08-08 · TA获得超过704个赞
知道小有建树答主
回答量:580
采纳率:66%
帮助的人:372万
展开全部
报什么错误?可以贴出来?
:count
:username都是参数?
追问
是参数,:count是手动输入的参数,:username是手动输入的用户名
追答
那到底报什么错误?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式