首页文档便民工具JavaScript正则表达式SQL教程
首页/文档/

在 SQL where 介绍过详细的逻辑运算符和比较运算符,可以点击进行查看。

一. 基本定义

AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。可以把两个或多个条件结合起来,形成联合条件。

可以把 AND,理解成数学中的 并且,只有多个条件都满足时,才能过滤出来。可以把 OR,理解成 或者,只要有一个条件满足时,就能过滤出来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

二. 示例

创建 student 和 teacher 表:

CREATE TABLE student (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT "主键id",
  name varchar(10) UNIQUE NOT NULL COMMENT "学生名称",
  age INT COMMENT "学生年龄",
  teacher_id INT COMMENT "学生辅导员id"
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO 
student (name, age, teacher_id) 
VALUES 
("李红", 20, 1), 
("刘涛", 10, 1), 
("王武", 19, 2), 
("李明", 18, null), 
("李小明", 15, null);

CREATE TABLE teacher (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT "主键id",
  name VARCHAR(10) UNIQUE NOT NULL COMMENT "辅导员名称"
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO teacher (name) VALUES ("王老师"), ("蒋老师");

ALTER TABLE student ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(id);

执行后,student 表和 teacher 表:

select where

1. AND 逻辑运算符实例

查询 student 表中,学生年龄在18岁以上且分配的老师是蒋老师的记录:

SELECT * FROM student WHERE age >= 18 AND teacher_id = 2 ;

select where

2. OR 逻辑运算符实例

查询 student 表中,找出李小明和李明两位学生的记录:

SELECT * FROM student WHERE name = "李小明" OR name = "李明";
// 或者
SELECT * FROM student WHERE name IN ("李小明", "李明");

select where

3. 结合 AND 和 OR 逻辑运算符

查询 student 表中,找出名字叫李红或者刘涛两位学生,且他的老师是王老师(teacher_id 等于1)的记录:

SELECT * FROM student WHERE (name = "李红" OR name = "刘涛") AND teacher_id = 1;
目录
一. 基本定义
二. 示例
1. AND 逻辑运算符实例2. OR 逻辑运算符实例3. 结合 AND 和 OR 逻辑运算符