【设计】Mysql 设置boolean类型的操作,MySQL保存Boolean值时,用1代表TRUE,0代表FALSE,boolean类型在MySQL里的类型为tinyint(1)

文章讲述了如何在MySQL中使用tinyint(1)类型来表示boolean值,当处理REST请求中的布尔值需求时,1代表true,0代表false。创建了一个包含enableStatus字段的数据库表作为示例。
摘要由CSDN通过智能技术生成

tinyint类型

create table test(
    id int PRIMARY key,
    status boolean
)

这样是可以创建成功。查看建表后的语句会发现,mysql把它替换成tinyint(1)。

在这里插入图片描述

tinyint只能存储从0到255的整数,由于MySql中没有boolean类型,所以会用到tinyint[1]类型来表示,在mysql中boolean=tinyint[1]

0代表false

1代表true

在pojo里直接定义该属性为布尔值即可:private Boolean status

当类型为tinyint[1]时,不管存储的是0或1还是2,3,4…返回的都是boolean类型,当我们需要用他存储整值时,可以设置为tinyint[4]

MySQL boolean类型解决方案

1.需求来源

今天在定义一个需求的时候,使用rest请求操作数据库的时候,某一个key对应的value要是boolean值。

在mysql中某一个字段要是布尔类型值。

1

2

3

4

5

6

7

8

9

10

11

12

{

    "neId": 2,

    "data": [{

            "alarmLevel": "1",

            "selection": true

        },

        {

            "alarmLevel": "2",

            "selection": true

        }

    ]

}

2.搜刮"民脂民膏"

在用MySQL设置boolean的时候发现跟本就没有这种类型,后来搜刮"民脂民膏"了解到解决方案:

boolean类型用tinyint表示。

3.创建的数据库

在这里插入图片描述

建标结构:

1

2

3

4

5

6

7

8

9

DROP TABLE IF EXISTS db_msp.alarm_shield_level;

CREATE TABLE db_msp.`alarm_shield_level` (

  `neId` int(11) NOT NULL,

  `alarmLevel` varchar(32) NOT NULL,

  `alarmLevelCh` varchar(32) NOT NULL,

  `alarmLevelEn` varchar(32) NOT NULL,

  `enableStatus` tinyint(1) NOT NULL,

  PRIMARY KEY (`neId`,`alarmLevel`) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

4.结论

MySQL保存Boolean值时,用1代表TRUE,0代表FALSE,boolean类型在MySQL里的类型为tinyint(1)。

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值