📜  MySQL布尔值

📅  最后修改于: 2020-11-18 01:52:10             🧑  作者: Mango

MySQL布尔

布尔值是最简单的数据类型,总是返回两个可能的值,即true或false。它始终可以用来以YES或No值的形式获得确认。

MySQL不包含内置的Boolean或Bool数据类型。它们提供TINYINT数据类型,而不是Boolean或Bool数据类型。 MySQL认为零值是false,非零值是true。如果要使用布尔字面量,请使用true或false,其总值为0和1。 0和1代表整数值。

执行以下语句以查看布尔字面量的整数值:

Mysql> Select TRUE, FALSE, true, false, True, False;

成功执行后,将显示以下结果:

MySQL布尔值示例

我们可以将布尔值作为整数数据类型存储在MySQL表中。让我们创建一个表格学生,演示在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。执行以下查询以从学生表中获取数据:

Mysql> SELECT  studentid, name, pass FROM student;

您将获得以下输出,其中将true和false字面量转换为0和1值。

由于MySQL始终使用TINYINT作为布尔值,因此我们也可以将任何整数值插入Boolean列。执行以下语句:

Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);

您将得到以下结果:

在某些情况下,您需要使用true和false字面量获取结果。在这种情况下,您需要使用select语句执行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;

您将获得以下输出: