웹마스터 팁

MySQL에서 한글 정렬 문제

2001.11.21 15:28

손정호

고수분들은 다 아시는 내용이겠지만 저와 같은 생초보 분들을 위하여 올려 봅니다.  (죄송~~~)
------------------------------
대개 한글을 정렬하기 위해서
mysql을 설치할 때
--with-charset=euc_kr
옵션을 주고 컴파일하도록 권장하고 있습니다.
그런데
my.cnf나 my.ini  file에
[mysqld]
     :
     :
default-character-set=euc_kr
     :
위 처럼 setting이 되어 있는데도 한글 정렬이 제대로 안되면?

테이블을 생성할 때 해당 필드에 다음과 같이 binary 옵션을 줘보세요.

create table my_user (
user_no int(10) unsigned not null auto_increment,
user_id varchar(30) not null,
user_pw varchar(30) not null,
user_name varchar(50) binary not null,
primary key (user_no)
);

위와 같이 user_name 필드에 "binary" 옵션을 주고 테이블을 생성하고  "select * from my_user order by user_name" 을 실행해보면 정상적으로 한글 정렬이 됩니다.

만일 테이블이 이미 생성되어 있다면 admin tool 등을 사용하여 옵션을 수정하시면 되고, 그것도 불가한 경우에는 다음 방법을 사용해보세요.

"select * from my_user order by binary user_name"

** 아래처럼 해도 된다고 하는데 제가 test 해본 결과는 안되던데...
여러분이 직접 한 번 해보세요.
(mysql에서 직접하면 되는데 php program내에서는 안되네요)

"select *  from my_user where binary user_name Between binary '강감찬' And binary '홍길동  order by user_name"

참고로 mysql 버젼은 3.23.38 이고
          php 버젼은 4.0.5 입니다.