2

我有一些桌子

身份证姓名点
----------------------
1 个名字 1 0
2 名称2 15
3 名称3 0
4名4 20

我想通过更新积分表$db->Query

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

所以当更新表显示像这样

身份证姓名点
----------------------
1 个名字 1 0
2 名称2 14
3 名称3 0
4 名称4 19
4

1 回答 1

9

Try

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

SQLFiddle

To execute it using mysqli extension you can do something like this

$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
}
于 2013-03-24T04:52:05.310 回答