【问题标题】:mysql query UPDATE increment an entry to entry + x [duplicate]mysql查询UPDATE增加一个条目到条目+ x [重复]
【发布时间】:2016-01-10 07:12:09
【问题描述】:

我有这个问题:

$key = "particle";
$value = 6

$sql = 
"
UPDATE `B5CGM`.`tac_adaptivearmour`
SET `".$key."points` = '".$key."points' + $value
WHERE"." gameid = $gameid AND shipid = $damage->shipid
";

调试后得到这个字符串:

UPDATE `B5CGM`.`tac_adaptivearmour` SET `particlepoints` = 'particlepoints' + 6 WHERE gameid = 2703 AND shipid = 16624 

基本上,我想要的是让我的查询获取数据库中粒子点的当前值,并将其增加一定数量,我通过变量设置到 UPDATE 字符串中。

查询前,数据库中的粒子点数为 6。 在运行上面的查询之后,我将除了将值 12 保存为粒子点的表。相反,它设置为 6 - 即它保持为 6,或者设置为 6 而不考虑原始值。

谢谢。

【问题讨论】:

  • 反引号不是列名周围的单引号:UPDATE `B5CGM`.`tac_adaptivearmour` SET `particlepoints` = `particlepoints` + 6 WHERE gameid = 2703 AND shipid = 16624

标签: php mysql increment


【解决方案1】:

你可以使用

$sql = "UPDATE `B5CGM`.`tac_adaptivearmour` SET `particlepoints` = `particlepoints` + 6 WHERE gameid = '".2703."' AND shipid ='". 16624."'";

这种查询的语法是

UPDATE users SET column_name =column_name+10 WHERE id=4
Here 10 is the number by which i want to increase the value of colunm

这里的 column_name 字段应该是数字。 希望它会帮助你。编码愉快。

【讨论】:

    【解决方案2】:

    实际上你的任务是一个尖锐的符号(`)。

        $sql = "
        UPDATE `B5CGM`.`tac_adaptivearmour`
        SET `".$key."points` = `".$key."points` + $value
        WHERE"." gameid = $gameid AND shipid = $damage->shipid
        ";
    

    【讨论】:

    • 为什么 OP 应该尝试这个?一个好的答案总是会解释所做的事情以及这样做的原因,不仅适用于 OP,而且适用于 SO 的未来访问者。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 2017-08-15
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多