TIL/Database에 해당하는 글 4

  1. mybatis xml파일 내 if문에서 단일 문자로 비교되지 않는 문제 2024.07.16

    주어진 state에 따라 WHERE절 내 조건이 변경되는 쿼리를 작성할 일이 있었다.그래서 아래와 같이 state가 'Q' 일 때 어떤 조건을 추가하도록 작성하고 테스트를 진행했다.... AND start_date IS NULL  근데.. 분명 Q를 state에 넣어주고 테스트를 진행했음에도 if문 내의 조건문이 추가되지 않는 이슈가 있었다.원인을 찾아 보니, 작은 따옴표(') 사이에 하나의 문자만 넣으면 string이 아닌 char로 인식하여 숫자로 변환해 버린다.즉, 저 코드로는 숫자 81로 비교가 되고 있는 것이다...   그래서 어떻게 하면 의도대로 작동하는가?작은 따옴표(') 대신 큰따옴표(")를 사용하면 바로 해결된다. ... ..


  2. ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'A' which is not functionally dependent on columns in GROUP BY clause; 2023.11.29

    이번에 MySQL 버전을 업그레이드하면서 잘 되던 API가 작동하지 않는 이슈가 발생했다. 에러 로그를 보아하니... 문제가 발생한 쿼리는 아래와 같았다. SELECT C.id, C.type FROM PROJECT INNER JOIN GROUP B ON A.group_id = B.group_id INNER JOIN MEMBER C ON C.member_id = B.user_id WHERE A.project_id = #{value} GROUP BY C.id ORDER BY A.reg_date DESC 그리고 에러 메시지는... Cause: java.sql.SQLSyntaxErrorException: Expression #1 of ORDER BY clause is not in GROUP BY clause a..


  3. 구분자로 데이터를 전송받을 때 데이터 유실 2023.10.24

    어떤 프로그램 속에서 데이터를 구분자로 구분하여 하나의 String으로 받아 오는 부분이 있었다.하지만 꽤 많은 데이터를 가져올 때 어느 시점부터 모든 데이터를 가져오지 못하고,가져오지 못한 데이터는 undefined로 노출되는 문제가 있었다. 이름|이름|이름|이름|...|undefined|undefined 이런식으로. https://jaejade.tistory.com/102 [MySQL] GROUP_CONCAT length 제한작업 중에 group_concat을 활용하여 객체를 요소로 갖는 배열 형태를 반환하게끔 했는데 길이 제한 때문에 텍스트가 잘리는 이슈가 발생했다. 구글링 해보니 group_concat은 1024 문자가 기본값이라고jaejade.tistory.com 이 문제때문이었음!그래도 MyS..