2013-03-24 70 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