2012-06-26 31 views
0

我可以檢查更新值是否爲N,然後跳過此字段?如果更新值是特定字符串,跳過以更新表格字段

是否應該在PHP或MySQL的代碼中完成?

的流動是:

BEFORE

update store set book1 = 'Y', book2 = 'Y', book3 = 'N', book4 = 'N', book5 = 'N' where id = 1;

AFTER

update store set book1 = 'Y', book2 = 'Y' where id = 1;

因爲BOOK3,book4和Book5兩個將被更新爲N的價值,所以我跳過這個字段

回答

1

這是一個非常開放式的問題。這取決於您如何爲您的腳本構建SQL代碼,但是如果您想更改SQL,那麼使用PHP進行操作將是您的最佳選擇。

作爲一個簡單的例子,你可以做這樣的事情:

$books = array ('book1' => 'Y', 
       'book2' => 'Y', 
       'book3' => 'N', 
       'book4' => 'N', 
      ); 

$updates = array();   

foreach ($books as $book => $value) { 
    if ($value != 'N') { 
     $updates[] = "$book = '$value'"; 
    } 
} 

$update = implode(', ', $updates); 
$query = 'update store set '.$update.' where id =1;';