mysql update문과 select문을 합치는 거? 질문드 0 4 1,085

by 메밀묵도토리묵 [SQL Query] mariadb dbeaver [2022.07.27 14:55:13]


select date_format(attend_dt, '%Y-%m-%d') as attend_dt

from tb_int_attendlist_spc

/////

UPDATE  tb_int_attendlist_spc set

    fixed_id = CASE WHEN '${strCheck(cond.fixed_id)}' = '' THEN NULL ELSE '${strCheck(cond.fixed_id)}' END

    where attend_dt = '${strCheck(cond.attend_dt)}'

    and emp_no = '${strCheck(cond.emp_no)}'

 

맨 위 select문에서 변경된 모양의 attend_dt를 아래 update에서 attend_dt를 update하기 전에 올바르게 넣어주고 싶은데, 혹시 어떻게 하는지 아시는 분 있나요?

위의 select 문에서 attend_dt는 2022-02-01인데, 아래에서는 20220201이라서 update문이 실행이 되지 않아서 여쭤봅니다...

by 우리집아찌 [2022.07.27 16:45:00]

정확한 목적을 모르겠습니다.

attend_dt 값을 변경하고 싶은신건지

WHERE 조건에 안맞으니까 변경하고 싶은신건지

 


by 메밀묵도토리묵 [2022.07.28 14:27:55]

답변 감사합니다!!

where 조건에 안 맞는 것 때문입니다


by 우리집아찌 [2022.07.28 15:21:58]

MYSQL은 잘모르지만..

where attend_dt =  STR_TO_DATE('${strCheck(cond.attend_dt)}','%Y%m%d')  

이런식으로 변수쪽을 datatime 으로 변환시키면 될거같습니다.


by 마농 [2022.08.01 10:15:02]

attend_dt 를 변형하여 변수에 담은 뒤
attend_dt 의 원본값과 변형된 값을 비교하네요.
애초에 변형을 하지 않고 원본 그대로 이용하면 되지 않나요?

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