MySQL 布尔类型
布尔类型是最简单的数据类型,它始终返回两个可能的值,即true或false。它常用于获得确认的形式,即是或否的值。
MySQL不包含内置的布尔或Bool数据类型。它们使用 TINYINT 数据类型代替布尔或Bool数据类型。 MySQL将零值视为false,非零值视为true。如果您想使用布尔字面值,请使用永远评估为0和1值的true或false。0和1表示整数值。
执行以下语句以查看布尔字面值的整数值:
Mysql> Select TRUE, FALSE, true, false, True, False;
成功执行后,出现以下结果:
MySQL布尔值示例
我们可以将布尔值存储在MySQL表中作为整数数据类型。让我们创建一个名为student的表,演示在MySQL中使用布尔数据类型的用法:
mysql> CREATE TABLE student (
studentid INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(40) NOT NULL,
age VARCHAR(3),
pass BOOLEAN
);
在上面的查询中,我们可以看到在显示表的定义时,pass字段被定义为一个布尔型;它包含如下的TINIINT:
mysql> DESCRIBE student;
使用以下查询语句,在上面的表中添加两行:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
当以上查询执行时,MySQL立即检查表中的布尔数据类型。如果找到布尔字面值,则会将其转换为整数值0和1。执行以下查询以从student表中获取数据:
Mysql> SELECT studentid, name, pass FROM student;
你将得到以下输出,其中true和false字面值将被转换为0和1的值。
由于MySQL始终将TINYINT视为布尔类型,因此我们也可以将任何整数值插入布尔列中。执行以下语句:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
您将得到以下结果:
在某些情况下,您需要以真和假文字的形式获得结果。在这种情况下,您需要执行带有以下选择语句的if()函数:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
它将会给出以下输出:
MySQL布尔运算符
MySQL还允许我们在布尔数据类型中使用运算符。执行以下查询以获取表student中所有通过的结果。
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
此语句会返回以下输出:
以上语句仅在值等于1时返回通过结果。我们可以通过使用 IS 操作符来修复它。此操作符使用布尔值验证该值。以下语句解释了这一点:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
执行此语句后,您将获得以下结果:
如果你想查看待处理结果,请使用以下 IS FALSE 或 IS NOT TRUE 运算符:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE;
OR,
SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
你将会得到以下输出: