最近 小弟在使用mysql存取数据的时候发现的一个特别的状况。就是某个库表中的一个字段类型是tinyint(1),若是只有两个值, 分别是0 和1,在java程序中取出就是 对应false 和true。java
对此状况,特地问了问度娘,发现这是mysql 数据库的一个特性。tinyint类型的字段若是长度只有1,那么取出时。默认会转成false 和true ,在存的时候,也是同样。若是存0和1以外的数字,也只会是1。mysql
因此,mysq 要存boolean 值,就使用tinyint(1)字段。0为false 1为true。sql
若是存0、一、二、三、四、五、六、七、8这种数字,就使用tinyint(4)字段。数据库
若是非要取出tinyint(1)字段的0和1 这种数字,则须要在对应的字段取出时,加上*1便可程序