最近 小弟在使用mysql存取数据的时候发现的一个特别的情况。就是某个库表中的一个字段类型是tinyint(1),如果只有两个值, 分别是0 和1,在java程序中取出就是 对应false 和true。
对此情况,特意问了问度娘,发现这是mysql 数据库的一个特性。tinyint类型的字段如果长度只有1,那么取出时。默认会转成false 和true ,在存的时候,也是一样。如果存0和1之外的数字,也只会是1。
所以,mysq 要存boolean 值,就使用tinyint(1)字段。0为false 1为true。
如果存0、1、2、3、4、5、6、7、8这种数字,就使用tinyint(4)字段。
如果非要取出tinyint(1)字段的0和1 这种数字,则需要在对应的字段取出时,加上*1即可