2013-03-24 59 views
2

我有一些表通过在某些条件下减去值来更新Mysql列?

 
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 
+0

?你需要关于语法的帮助,还是仅仅需要SQL查询? – Sepster 2013-03-24 05:17:03

回答

8

尝试

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

SQLFiddle

要你使用CodeIgniter的使用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 
} 
+0

我可以试试这个 $ db-> Query(“UPDATE'table' SET'points' =''points' - 1'WHERE'points'> 0”); – Auhits 2013-03-24 10:18:33

+0

@Ahhits您不必在点-1中使用单引号,因为这是MySQL语法的一部分。 – Jester 2013-03-25 14:47:38