일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Stock ipo
- css
- jquery
- 공모주 청약 일정
- SQL
- 주식 청약 일정
- IPO
- 7월 공모주 청약 일정
- JavaScript
- php
- codeigniter
- 맥
- html
- 자바
- java
- 제이쿼리
- 자바스크립트
- 코드이그나이터
- 오라클
- 주식
- 공모주 청약
- Oracle
- 리눅스
- Eclipse
- Stock
- 주식 청약
- 6월 공모주 청약 일정
- linux
- MYSQL
- 공모주
- Today
- Total
개발자의 끄적끄적
[DBMS] MySQL에서 검색에 사용되는 필드는 float로 설정하지 말아라.[하지 말아라.[펌] 본문
[DBMS] MySQL에서 검색에 사용되는 필드는 float로 설정하지 말아라.[하지 말아라.[펌]
테이블 구조
테이블명 : t_float
f_idx f_float
------ ---------
1 1
2 10
3 0.2
4 0.23
5 0.234
쿼리1 : SELECT * FROM `t_float` WHERE f_float = 0.2
=>
f_idx f_float
------ ---------
----------------=---------------------
f_idx가 3인 row가 나올 것으로 예상하겠지만, 아니다.
부동 소수점인 경우 실제 보이는 값 뒤에 잡다한 값이 섞여 있다.
정수 부분만 사용한다면 모르겠지만, 소수 부분까지 쓴다면 검색이 힘들다.
쿼리2 : SELECT * FROM `t_float`
WHERE f_float > 0.19 AND f_float < 0.21
=>
f_idx f_float
------ ---------
3 0.2
쿼리3 : SELECT *,FORMAT(f_float,14) FROM `t_float`
=>
f_idx f_float format(f_float,14)
------ ------- --------------------
1 1 1.00000000000000
2 10 10.00000000000000
3 0.2 0.20000000298023
4 0.23 0.23000000417233
5 0.234 0.23399999737740
소수점이 있는 숫자는 뒤에 이상한 값들이 붙어있다.
'개발 > sql' 카테고리의 다른 글
[oracle] 이진 문자열 - RAW 타입 [펌] (0) | 2020.08.14 |
---|---|
[ORACLE]오라클_시퀀스(NEXTVAL , CURRVAL) 사용법 (0) | 2020.08.10 |
[DBMS] MSSQL 오전/오후를 24시간 표기법으로 변경 [펌] (0) | 2020.08.08 |
[Oracle] 테이블 & 컬럼 Comment 추가,확인,삭제 방법 (0) | 2020.08.08 |
[Oracle] 오라클 테이블 스페이스 사용법(조회, 생성, 삭제)등 총정리 (0) | 2020.08.07 |