DB64 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. [DB] too long data 오류 /MySQL 데이터형 및 크기 자료형이 왜 필요하는지? - “더 작은 공간을 사용하면서” , “더 빠르게 처리할수 있는” 프로그램을 만들기 위해서 데이터 자료형을 사용 - 작은 공간에 넣을수록 연산(SELECT 등의 연산)이 빨라지고 공간도 적게 차지 CHAR(M) [BINARY] - 자료형의 크기 : char 필드의 CHARACTER SET 에 따라 가변적임. 예를들어 char(10) 이면서 utf4mb8 일 경우 고정 40Byte 사용. - 범위 : 1 에서 255 글자 - 주의 : 고정길이로 길이가 작은 값이 입력되면 오른쪽에 스페이스로 채워져서 입력된다. BINARY 키워드가 주어지지 않을 경우 대소문자 구분없이 검색한다. VARCHAR(M) [BINARY] - 자료형의 크기 : varchar 필드의 CHARACTER SET .. 2023. 1. 5. [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. [MySQL] WITH 재귀(RECURSIVE) 쿼리 계층 구조 주의 !! mysql 5.7 이하 미지원 ■ WITH RECURSIVE 문 메모리 상에 가상의 테이블을 저장 재귀 쿼리를 이용하여 실제로 테이블을 생성하거나 데이터삽입(INSERT)을 하지 않아도 가상 테이블을 생성할 수 있다. WITH RECURSIVE 테이블명 AS( SELECT 초기값 AS 컬럼별명1 UNION ALL SELECT 컬럼별명1 계산식 FROM 테이블명 WHERE 제어문 ) ■ 예시 h(컬럼)이 초기값 1 부터 제어문에 합당하는 5까지의 데이터를 갖는 가상 테이블 생성 WITH RECURSIVE CTE AS( SELECT 1 AS h UNION ALL SELECT h+1 FROM CTE WHERE h 2022. 6. 3. Check the 'Function Name Parsing and Resolution' 오류 쿼리에 이상이 없어 보이고, DB에선 잘 먹히는데? 싶지만 COUNT ^ (*) 띄어쓰기하나로 생기는 오류 , COUNT (*) AS count COUNT와 () 사이에 띄어쓰기를 지워주면 문제 해결 , COUNT(*) AS count 2022. 5. 26. 이전 1 2 3 4 ··· 8 다음 728x90 반응형