大厂都这么使用MySQL8进行条件查询(中)

5 IN 运算符

5.1 查找列表中的值

  • 查询姓名为“刘备”、“关羽”或者“张飞”的员工:

大厂都这么使用MySQL8进行条件查询(中)

  • 只要匹配列表中的任何一个值,都会返回结果

5.2 子查询的结果匹配

6 空值判断

代表缺失或者未知的数据.

判断一个值是否为空不能使用等于或者不等于.

例如,以下查询尝试找出没有上级领导(manager 字段为空)的员工:

  • 空值判断的错误示例

大厂都这么使用MySQL8进行条件查询(中)

  • 该语句没有返回任何结果

大厂都这么使用MySQL8进行条件查询(中)

但确实存在这样的数据。错因在于将一个值与一个未知的值进行数学比较,结果仍然未知;即使是将两个空值进行比较,结果也是未知。

以下运算均是非法的,在 MySQL8.0 版本下,会报错

大厂都这么使用MySQL8进行条件查询(中)

[42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘NULL != NULL’ at line 1


大厂都这么使用MySQL8进行条件查询(中)

6.1 空值判断

大厂都这么使用MySQL8进行条件查询(中)

  • expression 的值为空,IS NULL 返回真,IS NOT NULL 返回假
  • 表达式的值不为空,IS NULL 返回假,IS NOT NULL 返回真
  • 查找没有上级领导的员工

大厂都这么使用MySQL8进行条件查询(中)

大厂都这么使用MySQL8进行条件查询(中)

如果仅仅能够指定单个过滤条件,就无法满足复杂的查询需求;为此,SQL 引入了用于构建复杂条件的逻辑运算符。


上一篇:鲁花真香


下一篇:阿里云:占据新零售市场半壁*的「商业+技术」逻辑