PostgreSQL 한글 정렬

포스트그레스에서 국가이름을 입력하고 정렬을 시켜봤습니다.

뭔가 이상합니다.

검색을 해보니, http://stackoverflow.com/questions/14191848/postgresql-order-by-is-very-weird에 문제와 원인이 잘 설명되어있습니다. collate 때문이랍니다. 따라서 쿼리를 다음처럼 주면.

select name_ko_kr from countries order by name_ko_kr collate “C”;

출력은 아래처럼 정상적으로 나옵니다.

하지만, 모든 쿼리마다 collate 를 주는 건 뭔가 모질라보여서, 디폴트를 찾아봤는데, 실패했습니다. 현재까지 발견한 유일한 방법은 initdb 를 호출하기 전에 환경변수에 LC_COLLATE 를 넣어주는 것 뿐이네요. (http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_db&wr_id=165894)

즉, export LC_COLLATE=“C” 라고 쉘에서 입력하면 해준다음에, brew intall postgresql 이나 apt-get install postgresql 을 하던지 하면 한글 정렬을 제대로 해주십니다.


댓글

쎄미 : 고맙습니다~ (2015-02-05 01:51:31)

쎄미 | [rails] PostgreSQL의 한글 필드 정렬 : […] http://tech.jinto.pe.kr/165 에서 해답을 얻었다. […] (2015-02-05 01:58:58)