본문 바로가기
728x90
반응형

DB/Mysql16

GROUP_CONCAT ORDER BY 그룹 콘캣 사용지 오더바이가 먹지 않은 이슈가 있다. SELECT CONCAT('[',GROUP_CONCAT('"',t200.LOGIN_DTM ,'"'ORDER BY t200.LOGIN_DTM DESC SEPARATOR ',' ),']' ) AS ARR FROM ( SELECT t100.ID ,t100.LOGIN_DTM FROM TB_MEMBER t100 WHERE t100.USER_ID = 'TEST01' ) t200 위형식은 그룹 콘캣에 오더바이를 넣어서 '배열' 형식으로 출력한것이다. GROUP_CONCAT(t200.LOGIN_DTM ORDER BY t200.LOGIN_DTM DESC) 그룹콘캣 오더바이만 사용시 위코드 처럼 사용가능 2023. 9. 18.
MySql JSON 형식 다루기 JSON_VALID() JSON_SEARCH() JSON_EXTRACT() ["0003","성인","0005"] 배열형식의 데이터입니다. 배열형식의 데이터를 다룰때 사용하는 JSON_XX() 을 이용하여 조회나 검증등 할수있습니다. SELECT tp.KEYWORD_LIST ,JSON_VALID(tp.KEYWORD_LIST) AS JSON_VALID -- JSON 포맷 검증 ,JSON_SEARCH(tp.KEYWORD_LIST ,'all', '0001') AS JSON_SEARCH -- JSON 에서 조건에 맞는 위치 리턴 ,JSON_EXTRACT(tp.KEYWORD_LIST , '$[0]') AS JSON_EXTRACT -- 첫번째값 리턴 FROM TB_PROJECT tp WHERE tp.DELETE_YN = 'N'; 2023. 9. 14.
GROUP_CONCAT() 간단 사용법 SELECT tcc.COMM_CD_NM , tcc.COMM_CD FROM TB_COMM_CD tcc WHERE tcc.GROUP_CD = 'KEYWORD' AND tcc.DELETE_YN = 'N' 위와 같은 기본테이블을 한줄로 출력하려할때, GROUP_CONCAT을 사용한다. GROUP_CONCAT을 사용하여 콤마(,)로 구분 짓는 리스트로 출력할수있다. 2023. 9. 12.
FIND_IN_SET() 간단 사용법 SELECT FIND_IN_SET('0001', '0001,0002') SELECT FIND_IN_SET( 검색할 데이터 , 리스트 ) 0 이나 1을 리턴해준다 0 : false 1 : true 틀린예시는 아래쪽에서 확인 가능하다. ["0001","0002"] 데이터가 콤마로 이루어진 리스트가 아닌 배열 형식의 string 은 false 를 리턴한다. 같은 배열 리스트라고 생각할수 있지만 오답을 리턴하니 주의 해야한다. 2023. 9. 12.
CONCAT , GROUP_CONCAT 활용 JSON 문자열로 쿼리 결과 추출 SELECT CONCAT('[', ARR, ']') AS KEYWORD_LIST FROM ( SELECT GROUP_CONCAT('{', ITEM, '}' SEPARATOR ',') AS ARR FROM ( SELECT CONCAT ( '"키워드" : ' , '"', tcc.COMM_CD_NM , '"' ) AS ITEM FROM TB_COMM_CD tcc WHERE tcc.DELETE_YN = 'N' AND tcc.GROUP_CD = 'KEYWORD' ) AS t100 ) t200 😎결과 2023. 9. 12.
[Mysql] truncated incorrect double value 에러 truncated incorrect double value 에러 해결 방법입니다. 업데이트 문은 가끔 쓰면 실수 많이 하게되는데요 셀럭트 문보다 사용이 적기 때문에 문법 오류를 자주 겪습니다. 😎변경전 UPDATE table ta SET ta.name = "변경" AND ta.address = "변경" WHERE ta.id = 1; 문제 없어 보일수도 있지만 truncated incorrect double value 에러가 났을땐 AND -> ,(컴마)로 변경 하시기 바랍니다 😎변경후 UPDATE table ta SET ta.name = "변경" , ta.address = "변경" WHERE ta.id = 1; 2022. 9. 21.
Check the 'Function Name Parsing and Resolution' 오류 쿼리에 이상이 없어 보이고, DB에선 잘 먹히는데? 싶지만 COUNT ^ (*) 띄어쓰기하나로 생기는 오류 , COUNT (*) AS count COUNT와 () 사이에 띄어쓰기를 지워주면 문제 해결 , COUNT(*) AS count 2022. 5. 26.
[mySql] 24시간 시간 출력 시간 데이터를 outer 조인 해서 데이터를 뽑을때, 시간을 순서대로 출력하는 쿼리입니다. SELECT @N := @N +1 AS n , DATE_FORMAT( DATE_ADD( '1000-01-01', interval @N -1 HOUR),'%H:00:00') as yyyymmdd FROM (TB_ALARM_BREAKDOWN tab), (SELECT @N:=0 FROM dual ) a LIMIT 24 해당 쿼리 실행시, 아래 24줄 row 출력 2022. 4. 25.
[mySql] 특정 기간 조회 / 데이터가 없는 날엔 0 처리 특정 기간 조회시 , 데이터가 있는 날짜는 출력되지만 데이터가 없는 날을 그룹바이 하면 중간중간 날짜가 빵꾸가 납니다. 날짜를 Right Join 걸어 주어 null일시, 0을 출력해주는 예제입니다. 실제는..작업하는 프로젝트 코드임으로 T200의 경우 날짜가 포함된 다른 코드로 변경했습니다. T200에는 걸어줄 쿼리를 널어주면 됩니다. SELECT T200.yyyymmdd AS date IFNULL(T300.cnt, 0) FROM ( select date_format(publish_time, '%Y-%m-%d')as yyyymmdd, count(*) cnt from sample where publish_time between '2019-06-03 00:00:00' and '2019-08-04 23:59.. 2022. 4. 7.
728x90
반응형