스마트웹앱콘텐츠전문가/데이터베이스

[MariaDB]Interger to Boolean

9D4U 2021. 3. 16. 17:22
728x90
반응형

 

MariaDB에서 테이블 컬럼을 boolean 형식으로 사용하고 싶은 경우,

타입이 boolean이 형식이 아닌 tinyint 형식으로 저장이 됩니다.

 

문제는 여기서, 프로그래밍으로 이 데이터를 꺼내 Boolean 데이터로 가공하려고 햘 때

발생합니다.

 

다음 내용을 한 번 보시죠.

 

// Integer to Boolean 
Boolean test = Boolean.valueOf(String.valueOf(testService.get("dataBoolean"))); 
// testService.get("dataBoolean") <- 이 값은 db에서 가져온 Integer값(1 or 0)

 

1. "dataBoolean" 컬럼의 타입(길이)이 tinyint(4)이면,

위 예시의 test 값은 무조건 false를 가져와, 원하는 값 도출이 불가능합니다.

( 결과 : 1 -> false, 0 -> false )

 

 

참, 아이러니하게도 해당 컬럼의 타입(길이)를 변경해 주면 결과는 달라집니다.

 

 

2. "dataBoolean" 컬럼의 타입(길이)이 tinyint(1)이면,

위 예시의 test 값은 true 또는 false로 원하는 값 도출이 가능합니다.

( 결과 : 1 -> true, 0 -> false)

 

공식 문서 참조 : https://mariadb.com/kb/en/boolean/

BOOLEAN

Synonym for TINYINT(1).

mariadb.com

 

 

728x90