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

Auh*_*its 2 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

pet*_*erm 8

尝试

UPDATE yourtable
   SET points = points - 1
 WHERE points > 0
Run Code Online (Sandbox Code Playgroud)

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
}
Run Code Online (Sandbox Code Playgroud)