신사(SinSa)

이런 오류가 발생한 경우는 DB테이블에 설정된 Collation이 달라서 생기는 문제이다. 아예 테이블 컬럼의 collation을 추가하거나 업데이트해주는 편이 나중을 위해서 좋지만 엔지니어가 아닌 이상 이 작업도 직접 할 수 없는 경우가 많다. 그리고 지금 나의 경우에는 웹에서 제시되고 있는 JOIN 할 때 collate를 설정하는 방식으로는 sub 쿼리를 이용하거나 where 절 안에서 group concat을 이용해서 결과를 뽑아야 했어서 사용할 수 없었다. 

 

그래서 애초에 컬럼을 뽑을 때 collate를 설정해주게끔 했더니 쉽게 해결됐다. 역시 답은 있다. 아래의 쿼리에서 COL과 TABLE 부분만 적절하게 수정하면 된다.

select * from (
select substring_index(COL_1, '@', -1) A, from TABLE_1 u
where COL_1 != ""
) a
where (a.A collate utf8mb4_general_ci) not in (select group_concat(COL_2) from TABLE_2 group by COL_2)
and a.A != ""
profile

신사(SinSa)

@신사(SinSa)

포스팅이 좋았다면 "좋아요❤️" 눌러주세요!