mysql取值 true_MySQL数据库中tinyint类型字段读取数据为true和false (MySQL的boolean和tinyint(1))...

场景:数据库

字段:status (值为1,2,3)url

类型:tinyint  长度:1(有符号的)spa

结果:查询出来的数据列表,状态值无论是1仍是2仍是3,都是"boolean true"code

分析并解决:blog

分析:因为MySql中没有boolean类型,因此会用到tinyint[1]类型来表示,在mysql中boolean=tinyint[1]ip

解决:tinyint类型长度的问题,当我把长度改为4时,查询结果就正常了utf-8

猜测并使用新的方法解决:字符串

若是不改变类型的长度,怎么让查询的结果正确呢?须要在查询语句上面作修改了

在你须要执行的sql语句中,把这个状态字段*1,结果就会获得数据库存的值了(注意:记得加别名,否则查询出来的就是status*1 => '1')

SELECTid,

name,

status*1 ASstatus,

add_timeFROMtableNameWHEREplay_type= 0

总结一下以上的两种解决方法:

1.修改tinyint类型的长度

2.在查询的sql语句上面作修改

因此由这里能够看出,当你使用tinyint[1]来存储超过0,1两个值之外的值,好比存储2,那这个2就是脏数据就用tinyint[4],tinyint[1]只适用于存储0和1两个值,也即真和假,true和false

通常的,我们若是存的是纯数字的话,建议用tinyint,若是是字符串,且是固定长度的,建议用char,而enum的枚举字段,使用的使用须要慎重考虑,避免带来没必要要的麻烦

还有一种方式是在链接url上添加 tinyInt1isBit=false :

url: jdbc:mysql://192.168.17.107:3306/oip_back?useUnicode=true&characterEncoding=utf-8&useSSL=false&tinyInt1isBit=false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值