MySQL에서 문자열로 저장된 숫자 데이터를 숫자로 정렬하는 것은 데이터 분석 및 보고서 작성에 있어 중요한 과제입니다. 문자열 타입(VARCHAR, CHAR 등)으로 저장된 숫자 데이터는 기본적으로 문자열 기준으로 정렬되기 때문에, 예상치 못한 정렬 순서를 가져올 수 있습니다. 예를 들어, 문자열로 저장된 숫자 '10'이 '2'보다 앞서 정렬되는 등의 결과가 발생할 수 있습니다. 이러한 문제를 해결하기 위해서는 CAST 또는 CONVERT 함수를 사용하여 쿼리에서 문자열 컬럼을 숫자형으로 변환한 후 정렬해야 합니다. 문제의 발단 No 1 4 31 20 위의 테이블과 같은 데이터가 mysql 데이터베이스에 들어있습니다. 이 숫자들을 order by 해보면 원하는 결과는 1, 4, 20, 31 이 나와야 ..
MySQL에서 데이터를 그룹화하며 연결하는 작업은 매우 흔한 일입니다. 이때 자주 사용되는 함수가 바로 GROUP_CONCAT()입니다. 그러나 GROUP_CONCAT()을 사용하다 보면 몇 가지 문제에 직면하게 됩니다. 예를 들어, 기본적으로 제공되는 순서가 무작위일 수 있고, 특정 구분자를 사용하고 싶을 때, 또는 한글과 같은 문자가 깨지는 현상 등이 그것입니다. 오늘은 이러한 문제들을 어떻게 해결할 수 있는지에 대해 알아보겠습니다. 1. 문제의 발단 아래와 같은 테이블이 있습니다. col1 col2 1 a하나 2 a하나 3 b둘 4 b둘 5 b둘 다음의 검색쿼리문을 이용해서 검색을 했습니다. SELECT GROUP_CONCAT(col1) FROM table GROUP BY col2 그랬더니 이러한 ..