Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在MySQL中存储布尔数据类型?_Php_Mysql_Database_Mysqli_Boolean Logic - Fatal编程技术网

Php 如何在MySQL中存储布尔数据类型?

Php 如何在MySQL中存储布尔数据类型?,php,mysql,database,mysqli,boolean-logic,Php,Mysql,Database,Mysqli,Boolean Logic,哪个数据类型用于在MySQL中存储true/false信息? 尤其是在编写和阅读PHP脚本时 随着时间的推移,我使用并看到了几种方法: 没有一个看起来是最优的,我更喜欢tinyint 0/1变体,因为PHP中的自动类型转换非常简单地为我提供布尔值 那么,有没有一种我忽略了的布尔值类型 您认为使用一种或另一种类型有什么优点/缺点吗?对于MySQL 5.0.3及更高版本,您可以使用BIT或TINYINT 对于mysql,您有一个更详细的答案使用类型BOOLEAN NOT NULL类型 像 如果布尔值

哪个数据类型用于在MySQL中存储
true/false
信息?

尤其是在编写和阅读PHP脚本时

随着时间的推移,我使用并看到了几种方法:

没有一个看起来是最优的,我更喜欢
tinyint 0/1变体
,因为PHP中的自动类型转换非常简单地为我提供布尔值

那么,有没有一种我忽略了的布尔值类型


您认为使用一种或另一种类型有什么优点/缺点吗?

对于MySQL 5.0.3及更高版本,您可以使用BIT或TINYINT


对于mysql,您有一个更详细的答案

使用类型BOOLEAN NOT NULL类型 像

如果布尔值不起作用,请使用像 TINYINT(1)不为空 例如,
ALTER TABLE
products
ADD
test
TINYINT(1)不为空

重要
TINYINT(1)TINYINT中的值是必需的。

有很多选项

为了与许多不同的MySQL客户端、客户端库、ORM等兼容,我们已经确定

 col  TINYINT(1) UNSIGNED COMMENT 'boolean, ...'
除布尔值外,我们不使用
TINYINT(1)UNSIGNED
数据类型。(我们可以添加
notnull
)添加注释,第一个字符串是“boolean”,后面是实际描述

请注意,
(1)
不会影响可存储的值的范围。它仍然可以保存从0到255的整数值。我们包含它只是为了帮助区分“boolean”类型和其他不是boolean的TINYINT值

我们将NULL值处理为NULL,将
0
的值处理为“false”,任何其他值都被视为“true”。。。与MySQL在布尔上下文中解释整数值的方式相同


我们没有遇到任何无法处理整数类型的客户端。

tinyint是一个不错的选择。下面是一个很好的答案:为什么需要
(1)
后面的
tinyint
?它不影响可存储的值的范围。是的,tiny int的范围从-128到127,因此需要指定是否使用tiny int。是的,可存储在
TINYINT
中的值的范围是-128到127。这与可存储在
TINYINT(1)
中的值范围相同。同样,没有解释为什么需要使用
TINYINT(1)
vs
TINYINT
。可以存储的值的范围是相同的。这有什么区别呢?请注意,一些客户端/客户端库/ORM映射不能很好地处理
数据类型。但我们不会遇到整数类型的问题。
ALTER TABLE `products` ADD `test` BOOLEAN NOT NULL;
 col  TINYINT(1) UNSIGNED COMMENT 'boolean, ...'