MySQL BOOLEAN 数据类型简介
简介:本教程向您展示了如何使用 MySQL BOOLEAN 数据类型来存储布尔值,true 和 false。
MySQL BOOLEAN 数据类型介绍
MySQL 没有内置的布尔类型。但是,它 TINYINT(1) 改为使用。为方便起见,MySQL 提供 BOOLEAN 或 BOOL 作为 TINYINT(1) .
在 MySQL 中,零被认为是假的,非零值被认为是真。要使用布尔文字,请使用常量 TRUE 和 FALSE 分别计算为 1 和 0。请参阅以下实例:
SELECT true, false, TRUE, FALSE, True, False;
-- 1 0 1 0 1 0
MySQL 布尔值实例
MySQL 将布尔值作为整数存储在表中。为了证明这一点,让我们看一下下 tasks 表:
CREATE TABLE tasks (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
completed BOOLEAN
);
即使我们将完成的列指定为 BOOLEAN ,但当我们显示表定义时,它 TINYINT(1) 如下所示:
DESCRIBE tasks;

以下语句向 tasks 表中插入 2 行:
INSERT INTO tasks(title,completed)
VALUES('Master MySQL Boolean type',true),
('Design database table',false);
在将数据保存到布尔列之前,MySQL 会将其转换为 1 或 0。以下查询从 tasks 表中检索数据:
SELECT id, title, completed
FROM tasks;

如您所见, true 和 false 被转换为 1 和 0。
因为 Boolean 是 TINYINT(1) ,所以您可以在 Boolean 列中插入 1 和 0 以外的值。考虑以下实例:
INSERT INTO tasks(title,completed)
VALUES('Test Boolean with a number',2);
它工作正常。

如果要将结果输出为 true and false ,可以 IF 按如下方式使用该函数:
SELECT
id,
title,
IF(completed, 'true', 'false') completed
FROM
tasks;

MySQL 布尔运算符
要获取 tasks 表中所有已完成的任务,您可能会提出以下查询:
SELECT
id, title, completed
FROM
tasks
WHERE
completed = TRUE;

如您所见,它只返回 completed 值为 1 的任务。要修复它,您必须使用 IS 运算符:
SELECT
id, title, completed
FROM
tasks
WHERE
completed IS TRUE;

在此实例中,我们使用 IS 运算符根据布尔值测试值。
要获取挂起的任务,请使用 IS FALSE 或 IS NOT TRUE 如下:
SELECT
id, title, completed
FROM
tasks
WHERE
completed IS NOT TRUE

在本教程中,您学习了如何使用 MySQL BOOLEAN 数据类型(它是 的同义词 TINYINT(1) )以及如何操作布尔值。