ALTER TABLE `db`.`table` CHANGE COLUMN `DIV_CD` `DIV_CD` INT NULL DEFAULT NULL ;
위 쿼리를 이용해서 DIV_CD 컬럼을 varchar(10) 에서 integer 로 바꾸려고 합니다.
1~5 사이의 숫자중 하나로 레코딩이 되어있는데, 간혹 들어있는 '-' 때문에 쿼리 에러가 나는데요
'-' 는 의미없는 데이터여서 null 처리해도 됩니다.
에러를 무시하고 컬럼 속성을 변경할 수 있는지요
select replace(div_cd, '-', '') from `db`.`table`;
·¹Äڵ尡 ³Ê¹« ¸¹¾Æ¼ ÀÏÀÏÀÌ Ã£±â°¡ ¾î·Æ½À´Ï´Ù.
ÀÌ°æ¿ì ¼ýÀÚ°¡ ¾Æ´Ñ°É ¼ýÀÚ·Î º¯°æÇÒ ¼ö ÀÖÀ»±î¿ä?
update `db`.`table` set `DIV_CD`=cast(`DIV_CD` as signed) where 1=1
³¯¸®½Ã¸é ¼ýÀÚ ¾Æ´Ñ°Ç ÁË´Ù 0À¸·Î ¹Ù²î¾î¼ µé¾î°©´Ï´Ù. (data°¡ truncate µÈ´Ù°í warningÀÌ ¶ß±ä Çϴµ¥, °Á ¹«½ÃÇÕ´Ï´Ù)
±×´ã¿¡ ÇÊ¿ä¿¡ µû¶ó 0ÀÎ Ç׸ñÀ» null ·Î º¯°æ ÇϽðí... ±×´ÙÀ½¿¡ alter·Î Ä÷³ ŸÀÔ º¯°æÇϼ¼¿ä.
°¨»çÇÕ´Ï´Ù.
Çϵå¿þ¾î »çÀÌÆ®ÀÎÁÙ ¾Ë¾Ò´õ´Ï... ^&^;;
MySQL¿¡¼µµ Á¤±ÔÇ¥Çö½ÄÀ¸·Î replace°¡ µÇ´Â ÁÙ ¾Ë¾Ò´Âµ¥ ±×·¸°Ô ¾ÈµÅ³×¿ä.
REGEXP¸¦ ÀÌ¿ëÇØ ¹®ÀÚ°¡ Æ÷ÇÔµÈ ¿¹¿Ü »Ì¾Æ³»
replace¸¦ ¿©·¯¹ø ¼öÇàÇÏ´Â °ÍÀÌ ÁÁÀ» µí ÇÕ´Ï´Ù.