본문 바로가기

MySQL3

MySQL | SUBSTRING_INDEX로 문자열 자르기 🍿 요구사항 (Requiredments) 기존 테이블에서 컬럼을 새로 추가하고, 하나의 컬럼을 기준으로 문자열을 2가지로 나누려고 합니다. 새로 추가한 컬럼을 마이그레이션 하려고 합니다. 🍑 해결방안 (Solution or Next step) SUBSTRING_INDEX 사용방법 SUBSTRING_INDEX(문자열, 구분자, 구분자 인덱스) 예시코드 SELECT column_name, SUBSTRING_INDEX(column_name, 'F', 1), SUBSTRING_INDEX(column_name, '_', -1) FROM table_name column_name: 해당 컬럼 명을 넣어주세요. table_name: 해당 테이블 명을 넣어주세요. 🥦 회고 (Retrospective) Java로 매번 s.. 2021. 12. 6.
MySQL | GROUP BY와 HAVING으로 컬럼 중복값 찾기 😏 요구사항 (Requiredments) 처음부터 테이블을 잘 만들어두면 좋겠지만, 시스템이나 서비스를 오랜 기간 운영하다 보면 컬럼을 변경할 일이 생길 수 있습니다. 유니크 인덱스(UNIQUE INDEX)는 컬럼에 중복된 값이 포함되어 있으면 생성할 수 없습니다. 이번에 컬럼을 변경하면서, 유니크 인덱스를 걸어두어도 괜찮을지 고민하던 차에 기존 데이터에 중복값이 있는지 확인하려고 합니다. 😚 해결방안 (Solution or Next step) 저의 경우에는 찾고자 하는 조건 컬럼이 3개여서 다음과 같이 사용했습니다. SELECT a_column, b_column, c_column, count(1) AS cnt FROM table_name GROUP BY a_column, b_column, c_colum.. 2021. 12. 5.
MySQL/MyBatis | 동적 쿼리(Dynamic Query) 사용하기 🍰 요구사항 (Requirements) A라는 서비스에 해당하는 테이블들을 조인하여 조회하는 기능에 사용 중입니다. 추후 공통화를 위해 B, C 서비스도 추가될 예정입니다. A, B, C 서비스 모두 하나의 쿼리에서 작업할 수 있도록 공통화 작업을 해야 합니다. 테이블은 필수로 사용되는 all_hist, 각 서비스에 해당하는 a_request, a_response, b_request, b_response, c_request, c_response가 있다고 가정합니다. 🏰 해결방법 (Solution or Next step) DTO에 flag가 되는 변수가 있다면 SQL문 FROM 절에 해당 변수를 체크하는 조건을 추가해주면 됩니다. ReqDTO에 flag 역할을 하는 type이라는 변수가 있다고 가정합니다... 2021. 10. 2.