2012-06-26 3 views
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 AFTER; 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;'; 
관련 문제