코딩테스트

[26.04.02 코테/회고(MySQL/Oracle)]-조건에 부합하는 중고거래 상태 조회하기

지니248 2026. 4. 2. 15:09

Lv2. 조건에 부합하는 중고거래 상태 조회하기 (MySQL)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/164672

 

내가 작성한 코드

SELECT BOARD_ID, WRITER_ID, TITLE, PRICE,
    CASE WHEN STATUS = 'SALE' THEN '판매중'
         WHEN STATUS = 'RESERVED' THEN '예약중'
         WHEN STATUS = 'DONE' THEN '거래완료'
    END AS STATUS
FROM USED_GOODS_BOARD
WHERE DATE_FORMAT(CREATED_DATE, '%Y-%m-%d') = '2022-10-05'
ORDER BY BOARD_ID DESC;

 

새로 배운 코드

SELECT BOARD_ID, WRITER_ID, TITLE, PRICE,
    CASE WHEN STATUS = 'SALE' THEN '판매중'
         WHEN STATUS = 'RESERVED' THEN '예약중'
         WHEN STATUS = 'DONE' THEN '거래완료'
    END AS STATUS
FROM USED_GOODS_BOARD
WHERE CREATED_DATE REGEXP '^2022-10-05'
ORDER BY BOARD_ID DESC;

 

Oracle

SELECT BOARD_ID, WRITER_ID, TITLE, PRICE,
    CASE WHEN STATUS = 'SALE' THEN '판매중'
         WHEN STATUS = 'RESERVED' THEN '예약중'
         WHEN STATUS = 'DONE' THEN '거래완료'
    END AS STATUS
FROM USED_GOODS_BOARD
WHERE TO_CHAR(CREATED_DATE, 'YYYY-MM-DD') = '2022-10-05'
ORDER BY BOARD_ID DESC;

 

문제 회고

1. 정규표현식 사용 방법

- MySQL : WHERE CREATED_DATE REGEXP '^2022-10-05'

- Oracle : WHERE REGEXP_LIKE(CREATED_DATE, '^2022-10-05')