2011-01-21 5 views
16

내 MySQL 데이터베이스에 부울 값을 저장하고 싶습니다. 그러나 어떻게 든 그것을 저장할 수없는 IAM은 mysql이 자동으로 tinyInt 유형의 값을 저장합니다. 또한 부울의 기본값을 알려줍니다. 우리가 값을 어떻게 전달합니까?mysql db의 부울 필드

+3

1 = true = false – BvdVen

답변

25

BOOLEAN의 경우 TINYINT의 동의어입니다. 전용 BOOLEAN 유형이 없습니다. accepeted는 TINYINT에 대한 것으로, 즉 false는 0, true는 1-255 (가능하면 1)입니다.

+0

하지만 bool과 tinyint가 다른 이유는 무엇입니까? 동일하면 하나 여야합니다. –

+0

'BOOL'이 없습니다. 'BOOL'로 쓰여질 수있는 'TINYINT'만 있습니다. – Mchl

+0

지금은 알았지 만, tinyInt.Bool을 사용할 수 있다면 왜 MySQL에서 bool을 유지했는지 혼란 스러웠습니다. 목록에서 제거해야합니다. –

6

MySQL에는 실제로 BOOLEAN 유형이 없으므로 BOOLEAN 열을 생성하면 실제로는 TINYINT가됩니다.

TINYINT를 부울로 처리하는 것은 너무 문제가되지 않지만, 0을 거짓으로, 0이 아닌 값을 true로 처리하면 문제가 없습니다. PHP에서 if ($column)과 같은 명령문은 $ column이 0을 제외한 임의의 값이거나 0으로 평가되는 값이면 true를 반환합니다. 명시 적으로 부울이 될 필요가있는 경우에는 다음을 수행하여 충분히 쉽게 변환 할 수 있습니다. $column = ($column != 0);

+1

마지막 쪽의 Upvote $ column = ($ column! = 0); –