MySQL 如何在PHP和MySQL中处理Boolean值

MySQL 如何在PHP和MySQL中处理Boolean值

我们正在使用MySQL 8.0.12版本。让我们先检查MySQL版本:

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.12    |
+-----------+
1 row in set (0.00 sec)
Mysql

在MySQL中处理布尔值,您可以使用BOOL或BOOLEAN或TINYINT(1)。如果使用BOOL或BOOLEAN,则MySQL会在内部将其转换为TINYINT(1)。

在BOOL或BOOLEAN数据类型中,如果使用真字面量,则MySQL将其表示为1,如果使用假字面量,则表示为0,就像在PHP/C/C++语言中一样。

为了证明MySQL将BOOL或BOOLEAN转换为TINYINT(1),让我们创建一个具有BOOLEAN或BOOL列的表。

在这里,我们创建了一个带有BOOLEAN列的表。创建表的查询如下:

mysql> create table BoolOrBooleanOrTinyintDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> isvalidAddress BOOLEAN,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.74 sec)
Mysql

现在使用SHOW CREATE命令检查以上表的DDL。查询如下:

mysql> show create table BoolOrBooleanOrTinyintDemo\G
Mysql

以下是输出结果:

*************************** 1. row ***************************
Table: BoolOrBooleanOrTinyintDemo
Create Table: CREATE TABLE `boolorbooleanortinyintdemo` (
   `Id` int(11) NOT NULL AUTO_INCREMENT,
   `isvalidAddress` tinyint(1) DEFAULT NULL,
   PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
Mysql

看一下isvalidAddress列,数据类型BOOLEAN被转换为tinyint(1)。现在您可以检查真字面量将由1表示,假字面量将由0表示。在表中插入一些具有真和假字面值的记录。插入记录的查询如下:

mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true);
Query OK, 1 row affected (0.43 sec)
mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(false);
Query OK, 1 row affected (0.17 sec)
mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true);
Query OK, 1 row affected (0.29 sec)
mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(false);
Query OK, 1 row affected (0.12 sec)
mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true);
Query OK, 1 row affected (0.33 sec)
Mysql

使用select语句显示表中的所有记录。显示所有记录的查询如下:

mysql> select *from BoolOrBooleanOrTinyintDemo;
Mysql

以下是输出结果:

+----+----------------+
| Id | isvalidAddress |
+----+----------------+
|  1 |              1 |
|  2 |              0 |
|  3 |              1 |
|  4 |              0 |
|  5 |              1 |
+----+----------------+
5 rows in set (0.00 sec)
Mysql

看以上示例输出,true表示为1,false表示为0。

在PHP中,如果使用true,则它将表示为1,false将表示为0。

看以下PHP代码。在这里,我设置了变量’isValidAddress’。该值为1,这意味着它将评估if条件并仅执行if语句体。检查以下代码:

$isValidAddress = 1;
if($isValidAddress)
{
   echo 'true is represented as ';
   echo ($isValidAddress);
}
else
{
   echo 'false is represented as ';
   echo ($isValidAddress);
}
Mysql

这里是代码快照:

MySQL 如何在PHP和MySQL中处理Boolean值

以下是输出结果:

MySQL 如何在PHP和MySQL中处理Boolean值

如果您将变量“isValidAddress”更改为值0。这意味着它评估if条件为假,并仅执行else语句的主体。下面是代码:

$isValidAddress=0;
if($isValidAddress)
{
   echo 'true被表示为 ';
   echo ($isValidAddress);
}
else
{
   echo 'false被表示为 ';
   echo ($isValidAddress);
}
Mysql

这是代码的快照:

MySQL 如何在PHP和MySQL中处理Boolean值

以下是输出:

MySQL 如何在PHP和MySQL中处理Boolean值

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册