0

更新値がNであるかどうかを確認してから、このフィールドをスキップできますか?

PHPまたはMySQLのコードで実行する必要がありますか?

フローは次のとおりです。

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

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

book3、book4、book5はの値に更新されるため、Nこのフィールドはスキップします

4

1 に答える 1

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;';
于 2012-06-27T01:59:36.067 に答える