update 쿼리에서 1=1 처리 0 3 1,102

by 아침이네 [MySQL] MySQL [2021.12.14 17:08:26]


UPDATE 쿼리에서 WHERE 쿼리에서 동적 태그를 위해 처음에 WHERE 1=1 로 시작하는데

UPDATE 쿼리에서도 SET 1=1 같은 것이 있을까요? SET 1=1 을 넣으면 에러가 나네요

UPDATE 테이블
            SET 1=1   -> 이 부분을 대체할 수 있는 방법이 있을까요?
            <isEqual property="tempAt" compareValue="N">
            , UPDT_DT = NOW()
            , SURVY_UPDT_DT = NOW()
            </isEqual>

WHERE CODE = #code#     

 

by 마농 [2021.12.14 17:54:14]

isEqual 문이 1개 뿐이라면? 아예 업데이트할 컬럼이 하나도 없을 수도 있다는 것인데?
isEqual 문이 1개 뿐인가요? 다른 isEqual 문도 있는데 1개만 보여주신거죠?
아예 업데이트할 컬럼이 하나도 없을 수는 없는 거겠죠?


by 아침이네 [2021.12.14 18:21:30]

제가 쓴 건 예시고 업데이트할 컬럼은 무조건 있다고 생각해주시면 됩니다.


by 마농 [2021.12.15 08:32:25]
-- 1. 아무거나 컬럼 사용하는 방안
UPDATE 테이블
   SET code = code
    <isEqual property="tempAt" compareValue="N">
           , UPDT_DT = NOW()
           , SURVY_UPDT_DT = NOW()
    <isEqual>
<dynamic>
 WHERE code = #code#
;

-- 2. prepend 로 "," 를 지정하되 젤 처음 것은 SET 이 나오도록 하는 방안
UPDATE 테이블
<dynamic prepend = "SET">
    <isEqual prepend = "," property="tempAt" compareValue="N">
             UPDT_DT = NOW()
           , SURVY_UPDT_DT = NOW()
    <isEqual>
<dynamic>
 WHERE CODE = #code#
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입