上一节介绍了数据范围的查找,但 WHERE 子句中的条件都是单个,如果我们要满足多条件的查找,比如说, id 值大于某个数同时小于某个数,这就是这一节涉及的内容了。

AND

其实 AND 、OR 这种语句跟其他的计算机语言的使用是一样的,这里就简单的写几个例子。

还是用到我们开始使用那张表。

and操作 mysql mysql中and的用法_基本教程


我们要选出 ID 值小于100 同时大于2的数据,这是一个 与 句式,就使用 AND 来进行连接。

SELECT * FROM book WHERE id < 100 AND id > 2;

得到结果如下:

and操作 mysql mysql中and的用法_基本教程_02


可以看到结果是同时满足这个条件的。

OR

当我们要使用 或 逻辑,比如 id 值大于100 或者等于 1 的数据,就使用 OR 来连接。

SELECT * FROM book WHERE id > 100 OR id = 1;

and操作 mysql mysql中and的用法_AND_03

注意:
当 AND 和 OR 组合在一起使用的时候,要注意的一点是,AND 的运算是要优先于 OR的,在 《MySQL必知必会》上有个例子,这里就不列举了,只是要注意一点:使用括号区分优先级是个好习惯。

对于自己而言,下次阅读时候可以减少理解的时间;
对于接管代码的同事而言,可以减少不必要的争吵与冲突,促进社会和谐。

IN

IN 的作用是什么呢?
我们可以理解为是一个列表,取出的数据在 IN 后面的列表里面。
比如说,我们要取出 id 值为1 和 3 的数据。
可以 用 语句 in (1, 3)。

SELECT * FROM book WHERE id IN (1, 3);

and操作 mysql mysql中and的用法_WHERE_04


可能有人会觉得,这个操作也可以使用 OR 来实现啊,那这个功能是不是和 OR 是一样的啊?

恭喜你,答对了。

这两个的连接符的功能确实是一样的。

不过,如果当列表的数据量过大,使用 OR 操作来连接会比较繁琐,所以这种情况下还是推荐使用 IN 操作符。

书上提到使用 IN 操作符的几个优点,相较于 OR:
1、语法更清楚,更直观
2、执行效率更快,相对于同样的条件

NOT

前面介绍了 与 和 或 的逻辑,现在这个 NOT 的逻辑就是 非。
表示对后面条件进行取反,比如我们使用的 IN 操作符,要查找 id 值不是 2 也不是 3 的数据,可以如下实现:

SELECT * FROM book  WHERE id != 2 AND id != 3;

用到 NOT 来实现的话,就是:

SELECT * FROM book WHERE id NOT IN (2, 3);

好了,这就是这一节要介绍的几个操作符,下一节要介绍 模糊查找 的关键字 like ,当我们对于要获取的数据只知道一部分,或者想要根据某一些关键词来搜索所有数据,就需要用到模糊查找了。

下节见。