티스토리 뷰

Programming/MySQL

MySQL에서 BOOLEAN형..

신규하 2009. 6. 29. 15:33
MySQL에서는 boolean형은 BOOL혹은 BOOLEAN으로 정의 하면 됩니다.
실제로 boolean형이라고 하면 1비트면 충분하지만 MySQL에서는 BOOLEAN형으로 하면, TINYINT(1)과 같이 1바이트를 잡아 먹습니다.
그리고 데이터 형도 TRUE와 FLASE는 1과 0에 매칭이 됩니다.
그래서 쿼리를 해 보면 아래와 같은 결과가 나옵니다.

mysql> SELECT IF(0 = FALSE, 'true', 'false');
+--------------------------------+
| IF(0 = FALSE, 'true', 'false') |
+--------------------------------+
| true                           |
+--------------------------------+

mysql> SELECT IF(1 = TRUE, 'true', 'false');
+-------------------------------+
| IF(1 = TRUE, 'true', 'false') |
+-------------------------------+
| true                          |
+-------------------------------+

mysql> SELECT IF(2 = TRUE, 'true', 'false');
+-------------------------------+
| IF(2 = TRUE, 'true', 'false') |
+-------------------------------+
| false                         |
+-------------------------------+

mysql> SELECT IF(2 = FALSE, 'true', 'false');
+--------------------------------+
| IF(2 = FALSE, 'true', 'false') |
+--------------------------------+
| false                          |
+--------------------------------+

일반 프로그래머 분들이라면, 0이 아닌 숫자는 true로 인식 할 수 있지만, MySQL에서는 false로 떨어지게 됩니다.
그래서 BOOLEAN형을 쓰는것 보다는 TINYINT(1)을 써서 좀 더 명확하게 하는게 좋지 않은가 싶습니다.

아니면 더 좋은 형이 있을까요?

참고 : http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
댓글
  • 프로필사진 루팡 스토리지 공간 중 단 한 비트만 써서 참/거짓 값을 저장하고 싶다면 CHAR(0) NULLABLE 을 이용하는 방법이 있습니다. 이 칼럼은 값 없음(NULL)이나 길이가 0인 값(빈 문자열)을 저장할 수 있습니다. 2016.01.19 00:19
  • 프로필사진 ㅇㅇ 이 블로그 글자는 왤케 잘 안보이나요 눈아파 죽겠넹 2016.01.19 19:10
  • 프로필사진 rMBP 디스플레이 해상도 (혹은 dpi)가 낮아 폰트가 구리게 보이시나 봅니다. HiDPI 지원하는 고해상도 모니터에서 보시면 깨끗하네요 (주인장은아닙니다) 2016.05.14 08:27
  • 프로필사진 나그네 tinyint(1) 제가 알기론 괄호 안에 숫자가 zerofill이라 입력숫자 범위는 상관없는걸로 알고 있습니다
    2016.08.31 17:46
  • 프로필사진 신규하 그냥.. 순수한 고민이였습니다. mysql에서는 boolean이.. 0과 1로만 구분이 되어서.. 필드형을 boolean보다는.. tinyint형으로 쓰는게 정확한 표현이 아닐까하는 생각이였습니다. 2016.09.17 14:19 신고
  • 프로필사진 FIL MariaDB에서는 boolean 타입을 지원하지 않는걸까요? 2017.12.12 18:14 신고
댓글쓰기 폼
공지사항
Total
1,667,612
Today
0
Yesterday
137
«   2019/12   »
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 31        
글 보관함