我正在尝试更新" new"具有新值的列值,但问题是我的查询在插入新值时删除以前的数据
想要什么:这是示例表结构,
表名= agg_lvl主键集= uid
uid | new
--------|--------
1 | 100
2 | 300
你可以看到" new"有100分,例如我向用户1发送100个新点,所以新列值应为100 + 100 = 200,现在使用此代码
$query4 = mysql_query("INSERT INTO agg_lvl (uid, new) VALUES ('$uid','$new')
ON DUPLICATE KEY UPDATE uid='$uid',new='$new'");
不确定是什么
new = '$new'
我尝试了两种方式,但没有成功=>
new = 'new + $new' or new = new + '$new'
答案 0 :(得分:2)
您应该在查询中进行更改
num = nun+$num
为旧版添加新值您的查询应如此:
$query4 = mysql_query("INSERT INTO agg_lvl (uid, new) VALUES ('$uid','$new')
ON DUPLICATE KEY UPDATE new=new+$new");
答案 1 :(得分:0)
好的,首先我将以正确的方式回答,在这种情况下,我假设UID是唯一的,因此您使用UID作为外键创建一个新表scorecard
。现在而不是更新,你只需要向表中插入内容,就像UID 1获得10点和20点一样,有两个条目。 onw with 10 and one with 20.现在要获得他当前的积分,你可以添加UID = 1的所有积分。
现在,在您的实现中,正确的查询将是
UPDATE userData SET points = points + x WHERE UID = $uid
其中x是获得的新点,points
是列的名称
答案 2 :(得分:0)
$ query4 = mysql_query(" INSERT INTO agg_lvl(uid,new)VALUES(' $ uid',' $ new') ON DUPLICATE KEY UPDATE uid =' $ uid',new = new + $ new");
在@ splash58
的帮助下为我工作