AND, OR, NOT 用法

AND, OR, NOT(与,或,非 运算符)

AND, OR运算符用于根据一个以上的条件过滤记录。

AND、OR、NOT 使用位置

WHERE子句可以与AND,OR和NOT运算符结合使用。

AND和OR运算符用于根据多个条件筛选记录:

  • 如果由AND分隔的所有条件为TRUE,则AND运算符显示记录。
  • 如果由OR分隔的任何条件为真,则OR运算符显示记录。

如果条件不为真,则NOT运算符显示记录。

AND语法

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;

OR语法

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;

NOT语法

SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;

演示数据库

在本教程中,主要是使用Mysql数据库,虽然和其他数据有一定的差异,不影响对SQL语法的讲解。

相应的脚本请查看上一篇文章:开始前准备环境

下面是选自 "member" 表的数据:

member_idmember_codepasswordnick_nameremarkslocationstatus
101010001112331张三xxx广东1
101110002112333李四xxx北京1
1012100031234567王五xxx广东1
101310004112335张飞xxx广东1
101410005112336关习xxx上海1
101510006112337关平xxx湖南1
101610007112338小李xxx广东1
101710008112339韩飞xxx深圳1
101810009112310刘备xxx三国1
101910010112312吴越xxx广西1
102010011112312韩信xxx南京1
102110012112331张包xxx广东1

AND 运算符实例

以下SQL语句从 "member" 表中选择其member_id大于 1015 、其location为"广东" 的所有客户:

示例语句:

SELECT * FROM member  
WHERE member_id>1015  
AND location='广东';

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101610007112338小李xxx广东1
102110012112331张包xxx广东1

OR 运算符实例

以下SQL语句选择location为“广东”或“广西”的“member”的所有字段:

示例语句:

SELECT * FROM member  
WHERE location='广东' OR City='广西';

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101010001112331张三xxx广东1
1012100031234567王五xxx广东1
101310004112335张飞xxx广东1
101610007112338小李xxx广东1
101910010112312吴越xxx广西1
102110012112331张包xxx广东1

NOT 运算符实例

以下SQL语句选择location不是 "广东"的"member"的所有字段:

示例语句:

SELECT * FROM member
WHERE NOT location='广东';

查询结果:

101110002112333李四xxx北京1
101410005112336关习xxx上海1
101510006112337关平xxx湖南1
101710008112339韩飞xxx深圳1
101810009112310刘备xxx三国1
101910010112312吴越xxx广西1
102010011112312韩信xxx南京1

 AND 和 OR 联合使用

您还可以组合AND和OR(使用括号来组成成复杂的表达式)。

以下SQL语句从member_id 大于1013 且 location 为"广东" 或"广西"的"member" 表中选择所有会员:

示例语句:

SELECT * FROM member  
WHERE member_id>1013  
AND (location='广东' OR location='广西');

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101610007112338小李xxx广东1
101910010112312吴越xxx广西1
102110012112331张包xxx广东1

AND,OR和NOT联合使用

你也可以结合AND,OR和NOT运算符。

以下SQL语句选择status为1的“会员”的所有字段,location必须是“上海”或“湖南”(用括号形成复杂表达式):

代码示例:

SELECT * FROM member
WHERE status=1 AND (location='上海' OR location='湖南');

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101410005112336关习xxx上海1
101510006112337关平xxx湖南1

以下SQL语句选择来自"member" 的location不是 "广东" 且不是 "湖南"的所有字段:

代码示例:

SELECT * FROM member
WHERE NOT location='广东' AND NOT location='湖南';

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101110002112333李四xxx北京1
101410005112336关习xxx上海1
101710008112339韩飞xxx深圳1
101810009112310刘备xxx三国1
101910010112312吴越xxx广西1
102010011112312韩信xxx南京1
腾讯云推出云产品限时特惠抢购活动:2C2G云服务器7.9元/月起
本文链接:https://www.jhelp.net/p/qktyT1JXWU9sWcSG (转载请保留)。
关注下面的标签,发现更多相似文章