Mysql Query 에서 한글이 깨지는 현상이 발생하였다.

Concat에서 문자열과 숫자를 Concat하니 한글깨짐현상이 나오는데 이걸 해결해야한다.

다음과 같은 쿼리를 보자.

[1] 테이블 정보
mysql> desc tb_menu_m;
+-----------------+------------------+------+-----+---------+----------------+
| Field           | Type             | Null | Key | Default | Extra          |
+-----------------+------------------+------+-----+---------+----------------+
| menu_seq        | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| menu_title      | varchar(50)      | NO   |     | NULL    |                |
| menu_url        | varchar(200)     | YES  |     | NULL    |                |
| menu_parent_seq | int(10) unsigned | NO   |     | NULL    |                |
| menu_level      | int(10) unsigned | NO   |     | NULL    |                |
| menu_position   | int(10) unsigned | NO   |     | NULL    |                |
| menu_left       | int(10) unsigned | YES  |     | NULL    |                |
| menu_right      | int(10) unsigned | YES  |     | NULL    |                |
| menu_type       | varchar(10)      | YES  |     | NULL    |                |
| comment         | varchar(200)     | NO   |     | NULL    |                |
| register_time   | datetime         | NO   |     | NULL    |                |
| modfiy_time     | datetime         | YES  |     | NULL    |                |
+-----------------+------------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)


[2] 한글깨짐 쿼리
mysql> select concat(menu_title,menu_seq) from tb_menu_m limit 1;
+-----------------------------+
| concat(menu_title,menu_seq) |
+-----------------------------+
| ?쒖뒪?쒓?由?            |
+-----------------------------+
1 row in set (0.00 sec)

[3] 해결방안
위내역은 menu_seq가 int형이기 때문이다. 저놈을 char로 캐스팅을 하면 괜찮아진다.
mysql> select concat(menu_title,cast(menu_seq as char)) from tb_menu_m limit 1;
+-------------------------------------------+
| concat(menu_title,cast(menu_seq as char)) |
+-------------------------------------------+
| 시스템관리1                               |
+-------------------------------------------+
1 row in set (0.00 sec)

간단하지만 concat는 컬럼이 다른경우 저런현상을 나타냄을 경험을 통해 알수 있었다.

이상 랑이의 ㅋㅋ 경험담. 끝
 
                                                                           - 2011-01-13 랑이씀 -


저작자 표시
신고

'DB > Mysql' 카테고리의 다른 글

[ MYSQL PROCESS LIST 보기 ]  (0) 2011.12.27
PK & UI 무엇이 올바른가?  (0) 2011.01.31
[ Mysql Concat 한글깨짐 ]  (0) 2011.01.13
[ WINDOWS OS 에서 MYSQL5.X ROOT 비밀번호 분실]  (0) 2011.01.04
MYSQL Tinyint(1) 의 의미  (2) 2010.07.27
[MYSQL GRANT를 이용한 권한 설정]  (0) 2010.07.16

WRITTEN BY
공성랑
부산 수정안과입니다.

받은 트랙백이 없고 , 댓글이 없습니다.
secret