-- 1. 컬럼 명칭 date, number 와 같은 예약어 사용은 좋지 않습니다. -- 2. 불필요한 서브쿼리 제거 필요 -- 3. * 일땐 다 나오고 아닐땐 지정한 값만 나오게 하려면 다음과 같이 SELECT DATE_FORMAT(date_1, '%Y-%m-%d') AS date_1 , number_1 FROM tb_example WHERE date_1 BETWEEN '${request.body.firstDate}' AND '${request.body.secondDate}' AND ( ${strCheckArr(request.body.person)} = '*' OR FIND_IN_SET(fruit, ${strCheckArr(request.body.person)}) > 0 ) ;