반응형
서브쿼리로 다른 테이블의 소수을 select 해오는 서브쿼리를 날렸을때 결과가 이상하게 나온다.
실제 merchant 테이블에는 0.04 데이터를 가진 row 1개만 있다.
frg_charge의 타입은 float이다.
쿼리를 날리면 이상없이 가져오지만
서브쿼리로 가져오면 이상하게도 소수점 자릿수가 늘어나면서 값이 달라진다.
무려 15자리가 추가되었다.
float나 double의 경우 2진수로 저장되고 2진수로는 10진수의 표현을 정확하게 표현할 수 없다.
이때 소숫점을 10진수로 저장하면 되는데 데이터타입을 DECIMAL로 변경해주면 된다.
자세한 내용은 아래의 주소에 다른분이 잘정리해놓았다.
https://honux77.wordpress.com/2014/06/12/mysql%EC%97%90%EC%84%9C-%EC%A0%95%ED%99%95%ED%95%9C-%EC%86%8C%EC%88%98%EC%A0%90-%EC%88%98%EB%A5%BC-%ED%91%9C%ED%98%84%ED%95%98%EA%B8%B0/
반응형
'[DataBase] > MySql' 카테고리의 다른 글
Unblock with 'mysqladmin flush-hosts' (0) | 2018.02.19 |
---|---|
mysql에서 테이블 레코드수, 용량 확인 (0) | 2017.06.02 |
mysql DB 마이그시 한글깨짐 (0) | 2017.01.10 |
mysql replication 에서 동기화 Error - 1062 (0) | 2017.01.06 |
[ERROR]host is blocked because of many connection errors unblock with 'mysqladmin flush-hosts' (0) | 2016.04.19 |
댓글