Php 什么数据类型可以用来在mysql中放置标志(布尔值)?
我有一个数据库,其中有以下列:Php 什么数据类型可以用来在mysql中放置标志(布尔值)?,php,mysql,sql,database,Php,Mysql,Sql,Database,我有一个数据库,其中有以下列: emp_id: INT(11) (PRIMARY KEY) FirstName: varchar(45) LastName: varchar(45) password: varchar(45) admin: ???? 我希望admin列是一个标志,因此该员工要么是admin(true),要么不是admin(false)。有人能告诉我在mysql表中为这个列分配什么数据类型吗 使用枚举类型。枚举可以有您定义的值,并且不能接受任何值,除非您为其定义。以下是示例 e
emp_id: INT(11) (PRIMARY KEY)
FirstName: varchar(45)
LastName: varchar(45)
password: varchar(45)
admin: ????
我希望admin列是一个标志,因此该员工要么是admin(true),要么不是admin(false)。有人能告诉我在mysql表中为这个列分配什么数据类型吗 使用枚举类型。枚举可以有您定义的值,并且不能接受任何值,除非您为其定义。以下是示例
enum('DENYED','NOT_ACCEPTED','ACCEPTED') COLLATE utf8_persian_ci DEFAULT 'NOT_ACCEPTED'
您应该能够将列声明为
TINYINT NOT NULL DEFAULT FALSE
(或DEFAULT 0
)
插入将是值(真,…
或值(假,…
或值(1,…
或值(0,…
)
作为一个不带引号的文本,TRUE
相当于1,FALSE
相当于0,因为MySQL中没有纯布尔数据类型
您的应用程序将始终看到结果集中的列包含1或0
忽略括号中的数字,例如TINYINT(1)
或TINYINT(4)
。这是一项传统功能的一部分,它为应用程序提供了列中存储的值的预期宽度的提示…它对于显示终端上的固定宽度字体很有用,但今天的应用程序基本上忽略了这一点,并且该值对列的内容或存储要求没有任何改变.ATINYINT
每行需要1字节的存储空间
通常不建议使用
枚举
,因为在幕后,枚举具有可能导致逻辑歧义的数值,因为值的“字符串”将隐式转换为其整数索引(基于1,而不是基于0)在某些上下文中。MySQL
没有内部的boolean
数据类型。您可以使用TINYINT(1)
@RayonDabre这是如何工作的?TINYINT的默认值是什么,参数是什么?TINYINT(1)是否表示true和TINYINT(0)对于false?我将如何将数据插入此表?插入表名(column1,column2,column3,…)值(value1,value2,value3,…)
@程序员您能给我一个关于我的答案的反馈吗?这个参数到底是什么?我输入了ENUM作为此列的数据类型,它说的是ENUM()。我应该在括号中输入什么?请给出SQL insert示例。@MikhailBatcer insert语句与任何其他VARCHAR字段类似,但该字段仅接受定义的值