개발/DATABASE (5) 썸네일형 리스트형 [SQL] 동적 쿼리 제어 1. 조건과 조건에 맞지 않을 경우 동적 제어 -- 조건에 해당하면 -- 그렇지 않으면 2. 조건이 무엇인지에 따라 동적 제어 -- type이 day일 경우 -- type이 month일 경우 3. AND(A OR B) AND (TYPE_A IS NULL AND (TYPE_A = #{type1} -- 항상 참 (열기 위해 사용) AND ( 1=1 AND (TYPE_B IS NULL AND (TYPE_B = #{type2} -- 항상 참 (닫기 위해 사용) OR 1=1 ) [SQL] 특정일 기준 일주일 구하기 (월-일, 일-토) 특정일에 해당하는 월요일에서 일요일 또는 일요일에서 토요일의 일주일을 구하기 주 단위 데이터를 끌어오기 위해 만들었다. 월요일과 일요일 -- @V_DATE기준 월요일 ~ 일요일 SET @V_DATE = '20230816'; SELECT DATE_SUB(STR_TO_DATE(@V_DATE, '%Y%m%d'), INTERVAL (DAYOFWEEK(STR_TO_DATE(@V_DATE, '%Y%m%d')) + 5) % 7 DAY) AS START_OF_WEEK, DATE_ADD(STR_TO_DATE(@V_DATE, '%Y%m%d'), INTERVAL (6 - DAYOFWEEK(STR_TO_DATE(@V_DATE, '%Y%m%d'))) DAY) AS END_OF_WEEK; 일요일과 토요일 -- @V_DATE기준 .. [SQL] 조건절에서 기간, 시간 중복 체크 날짜와 시간을 선택했을 때 중복 되는 값이 있는지 체크하기 위한 조건 테이블에 들어있는 값 START_DATE 시작일자 START_TIME 시작시간 END_DATE 종료일자 END_TIME 종료시간 입력 값 IN_START_DATE 시작일자 IN_START_TIME 시작시간 IN_END_DATE 종료일자 IN_END_TIME 종료시간 시작일시에 01을 붙이고 종료일시에 00을 붙여 중복 체크 AND ( CONCAT(START_DATE,START_TIME,'01') BETWEEN CONCAT(IN_START_DATE,IN_START_TIME,'01') AND CONCAT(IN_END_DATE,IN_END_TIME,'00') OR CONCAT(END_DATE,END_TIME,'00') BETWEEN CONC.. [SQL] function에 임시테이블 생성하기 function 내부를 확인하고 싶을 때 쓰던 방법 확인하고 싶은 값은 임시 테이블을 생성하여 넣는다. -- tempTable0이 존재하면 삭제한다. DROP TEMPORARY TABLE IF EXISTS tempTable0; -- tempTable0을 생성한다. CREATE TEMPORARY TABLE IF NOT EXISTS tempTable0( APP_DATE VARCHAR(8) NOT NULL, APP_MIN INT DEFAULT 0, PRIMARY KEY ( APP_DATE ) ); Lock wait timeout exceeded; try restarting transaction use information_schema; select * from INNODB_LOCKS; SHOW ENGINE INNODB STATUS; show variables like 'innodb_lock_wait_timeout'; set innodb_lock_wait_timeout=500; >프로시저 권한 문제였다. ^^;;;;;;;; 이전 1 다음