通过减去某些条件的值来更新Mysql列?

时间:2013-03-24 04:50:15

标签: php mysql sql cron

我有一些表

id     name     points
-----------------------
1      name1      0
2      name2      15
3      name3      0
4      name4      20

我想按$db->Query

更新积分表

我想从点中减1,但条件是如果点大于0。

因此,当更新表格显示

id      name     points
-----------------------
1       name1      0
2       name2      14
3       name3      0
4       name4      19

1 个答案:

答案 0 :(得分:8)

尝试

UPDATE yourtable
   SET points = points - 1
 WHERE points > 0

<强> SQLFiddle

要使用mysqli扩展程序执行它,您可以执行类似这样的操作

$db = new mysqli('localhost', 'user', 'password', 'dbname');
if ($db->connect_error) {
    die("Connect Error: " .$db->connect_error); //TODO: better error handling
}

$sql = "UPDATE yourtable
           SET points = points - 1
         WHERE points > 0";

if (!$db->query($sql)) {
    die("Update failed. Error: " .$db->error); //TODO: better error handling
}