something useful
mySQL에서 정렬(order by)이 안될 때.
써머즈
2005. 8. 7. 22:13
mySQL에서 varchar로 잡힌 필드를 정렬(order by)할 때 만약 원하는 값이 나오지 않는다면 BINARY()를 이용하는 것이 해결책이 될 수 있다.
예를 들어,
일 때, 쿼리문이 다음과 같을 때,
원하는 정렬 결과가 나오지 않는다면 다음과 같이 하면 된다.
이 방법은 varchar 등으로 정의된 필드에 한글이 입력되어 있고, order by로 정렬이 제대로 되지 않을 때 사용 가능하다.
감사합니다. 소프님, 드림님. :)
예를 들어,
CREATE TABLE `my_table` (
`idx` mediumint(8) unsigned NOT NULL auto_increment,
`id` varchar(20) NOT NULL default '',
`pass` varchar(20) NOT NULL default '',
`name` varchar(20) NOT NULL default '',
`email` varchar(35) NOT NULL default '',
PRIMARY KEY (`idx`)
)
`idx` mediumint(8) unsigned NOT NULL auto_increment,
`id` varchar(20) NOT NULL default '',
`pass` varchar(20) NOT NULL default '',
`name` varchar(20) NOT NULL default '',
`email` varchar(35) NOT NULL default '',
PRIMARY KEY (`idx`)
)
일 때, 쿼리문이 다음과 같을 때,
SELECT * FROM `my_table` ORDER BY name;
원하는 정렬 결과가 나오지 않는다면 다음과 같이 하면 된다.
SELECT * FROM `my_table` ORDER BY BINARY(name);
이 방법은 varchar 등으로 정의된 필드에 한글이 입력되어 있고, order by로 정렬이 제대로 되지 않을 때 사용 가능하다.
감사합니다. 소프님, 드림님. :)