DB/MYSQL

Insert 할 때 value 조건문 걸기

MAKGA 2021. 10. 5. 22:41
320x100

가끔 insert나 select 등 값에 조건을 걸어 다른 값으로 표현하거나 삽입하고 싶은 경우가 있다.

 

나 같은 경우엔 테이블에 nullable한 datetime 컬럼이 있고 파라미터로 unix 시간을 받는데,

파라미터 값이 0인 경우엔 datetime에 NULL을 넣고, 0이 아니면 datetime으로 변환한 값을 넣고 싶었다.

 

CASE ~ WHEN을 쓰는 방법과 IF를 쓰는 방법 2가지가 있다.

 

CREATE PROCEDURE `sp`
(
    IN _start_time BIGINT
)

BEGIN
    -- 1. CASE~WHEN
    INSERT INTO (start_date) VALUES ((CASE WHEN _start_time = 0 THEN NULL ELSE FROM_UNIXTIME(_start_time))
    -- 2. IF
    INSERT INTO (start_date) VALUES (IF(_start_time = 0, NULL, FROM_UNIXTIME(_start_time)))
END
320x100

'DB > MYSQL' 카테고리의 다른 글

paging 작업  (0) 2021.10.07
[펌] MyISAM와 InnoDB 비교  (0) 2021.10.07
commands out of sync you can't run this command now  (0) 2021.10.07
MYSQL을 위한 GUI 툴  (0) 2021.10.05
시간 관련 함수  (0) 2021.10.05