MySQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1),MySQL里有四个常量:true,false,TRUE,FALSE,它们分别代表1,0,1,0,

mysql> select true,false,TRUE,FALSE;

+------+-------+------+-------+

| TRUE | FALSE | TRUE | FALSE |

+------+-------+------+-------+

|    1 |     0 |    1 |     0 |

+------+-------+------+-------+

可以如下插入boolean值:insert into [xxxx(xx)] values(true),当然也可以values(1);举例如下:

mysql> alter table test add isOk boolean;

Query OK

mysql> desc test;

+-------+-------------+------+-----+---------+----------------+

| Field | Type        | Null | Key | Default | Extra          |

+-------+-------------+------+-----+---------+----------------+

| id    | int(11)     | NO   | PRI | NULL    | auto_increment |

| isOk  | tinyint(1)  | YES  |     | NULL    |                |

+-------+-------------+------+-----+---------+----------------+

mysql> insert into test(isOk) values(true);

Query OK

mysql> select isOk from test ;

+------+

| isOk |

+------+

|    1 |

+------+

MySQL没有boolean类型。这也是比较奇怪的现象。例:

create table xs

(

id int primary key,

bl boolean

)

这样是可以创建成功,但查看一下建表后的语句,就会发现,mysql把它替换成tinyint(1)。也就是说mysql把boolean=tinyint了,写1的话,会自动转为true,如下

eaUAB9bwbckVgX9eAAmpfH2FFvnmngf8PtkB6qkRUsWcAAAAASUVORK5CYII=

写2的话,有如下提示

YABgABoABYCAtGOCglbmPI2sha+ZEXpWWKJsD3mpIW37mVF4DM0+US7TN6f8HMaH3NEgNrNgAAAAASUVORK5CYII=

定义成tinyint(2),就是输入数值2了

create table xs

(

id int primary key,

bl tinyint(2)

)

参考文章

注意:本文归作者所有,未经作者允许,不得转载

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐