php - 什么数据类型可以用来在mysql中放置一个标志( bool 值)?

标签 php mysql sql database

我有一个数据库,其中包含以下列:

emp_id: INT(11) (PRIMARY KEY)
FirstName: varchar(45)
LastName: varchar(45)
password: varchar(45)
admin: ????

我希望管理员列成为一个标志,因此该员工要么是管理员(true),要么不是管理员(false)。有人可以告诉我为 mysql 表中的这一列分配什么数据类型吗?

最佳答案

您应该能够将该列声明为TINYINT NOT NULL DEFAULT FALSE(或DEFAULT 0)。

插入内容为VALUES (TRUE, ...) 或VALUES (FALSE, ...) 或VALUES(1, ... > 或 VALUES (0, ....

作为不带引号的文字,TRUE 相当于 1,FALSE 相当于 0,因为 MySQL 中没有纯 bool 数据类型。

您的应用程序将始终在结果集中看到包含 1 或 0 的列。

忽略括号中的数字,例如TINYINT(1)TINYINT(4)。这是遗留功能的一部分,该功能向应用程序提供了关于存储在列中的值的预期宽度的提示...它对于显示终端上的固定宽度字体很有用,但在很大程度上被当今的应用程序忽略了,而这值不会改变列的内容或其存储要求。 TINYINT 每行需要 1 个字节的存储空间。

对于 bool 情况,通常不建议使用 ENUM,因为在幕后,枚举具有可能导致逻辑歧义的数值,因为值的“字符串”将被隐式转换在某些情况下,它是整数索引(从 1 开始,而不是从 0 开始)。

关于php - 什么数据类型可以用来在mysql中放置一个标志( bool 值)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34477805/

相关文章:

php - 操作系统错误 : [Errno 13] Permission denied from python when using Sublime phpcs package, OSX 10.7

php - 如何在固定容器中添加滚动条

mysql - OR 的 SELECT 语句问题

php - 如何使我自己的自动增量在 php 中?

mysql - 加入 Zend 之前获取结果

sql - Postgres - 对一个月最后一天的行求和的快速方法

MySQL获取两个条件之间范围的id

php - 如何使用 Laravel 重启 Apache?

php - 获取匹配对

php - 从 Joomla 2.5 中的表中选择时出现 SQL 语法错误