2014-03-07 2 views
0

현재 값이 업데이트 될 값보다 작 으면 product_quantity를 업데이트 할 SQL 문을 작성하려고합니다 ... 문에 조건을 추가하는 방법에 대한 예제를 제공 하시겠습니까?SQL 문에 조건을 할당하는 방법이 있습니까?

UPDATE Product 
SET product_quantity='5' 
WHERE id='2' 

답변

1

같은 간단한 조건을 사용할 수 있습니다. 5은 두 가지 경우 모두에서 동적 값으로 대체되어야합니다.

UPDATE Product 
SET product_quantity='5' 
WHERE id='2' AND product_quantity < 5 

또한

UPDATE Product 
SET product_quantity= GREATEST('5', product_quantity) 
WHERE id='2' 

을 사용할 수 있습니다하지만 난 첫 번째 옵션이 더 나은 선택이라고 생각 :

  • 업데이트는 의미 조건입니다 : 조건이 일치하지 않습니다 : 없음 업데이트.
  • 두 번째 버전은 값이 같더라도 항상 행을 업데이트합니다.

최근 변경 시간 또는 표준시를 추적하는 경우 영향을 줄 수 있습니다. 그런 식으로.

+1

이렇게 'MAX'를 사용할 수 없습니다. 대신에'GREATEST()'를 사용해야합니다. – invisal

+0

@invisal 당신은 맞습니다 - 그냥 fiddl'd 그것을 밖으로 :) – dognose

1

글쎄, 당신은 같은 것을 할 수 있습니다 @dognose가 말한

UPDATE Product 
SET product_quantity = 5 
WHERE id = 2 AND product_quantity < 5 

또는 같은

, 당신은 GREATEST() 기능을 사용할 수 있습니다.

UPDATE Product 
SET product_quantity = GREATEST(5, product_quantity) 
WHERE id = 2 

또는 당신은 그냥 어디 조건에 추가이

UPDATE Product 
SET product_quantity = (
    CASE WHEN product_quantity < 5 THEN 5 
    ELSE product_quantity END 
) 
WHERE id = 2 
관련 문제