加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql应用msql select语句的WHERE子句详解

发布时间:2020-12-12 02:39:03 所属栏目:MySql教程 来源:网络整理
导读:《Mysql应用msql select语句的WHERE子句详解》要点: 本文介绍了Mysql应用msql select语句的WHERE子句详解,希望对您有用。如果有疑问,可以联系我们。 导读:1,WHERE子句 在SELECT语句中,语句首先从FROM子句开始执行,执行后会生成一个中间成果集,然后就开始

《Mysql应用msql select语句的WHERE子句详解》要点:
本文介绍了Mysql应用msql select语句的WHERE子句详解,希望对您有用。如果有疑问,可以联系我们。

导读:1,WHERE子句 在SELECT语句中,语句首先从FROM子句开始执行,执行后会生成一个中间成果集,然后就开始执行WHERE子句. WHERE子句是对FR...

1,WHERE子句
?
??? 在SELECT语句中,然后就开始执行WHERE子句.
???
??? WHERE子句是对FROM子句生成的成果集进行过滤,对中间成果集的每一行记录,WHERE子句会返回一个布尔值,(TRUE/FALSE),如果TURE,这行记录继续留在成果集中,如果FALSE,则这行记录从成果集中移除.
例如:
?MYSQL必读

SELECT name FROM student WHERE studentNO = 2
?

FROM子句返回的中间成果集:
?MYSQL必读

studentNO? name
---------? ----
??????? 1? 张三
??????? 2? 李四
??????? 3? 王五
??????? 4? 赵六

总共4行记录,对每一行记录执行WHERE子句.第一行中studentNO是1,所以studentNO=2表达式返回值为FALSE,这行记录移除.第二行中studentNO是2,所以studentNO=2返回TRUE,这行记录继续保存;同理第三行和第四行记录也移除,执行完WHERE语句后的中间结果集为:
?MYSQL必读

studentNO? name
---------? ----
??????? 2? 李四

然后执行SELECT语句,最终的成果集为:
?MYSQL必读

name
----
李四

2,比拟运算符
WHERE子句返回布尔值,所以WHERE子句经常会用到比拟运算符.MYSQL必读

比拟运算符有:
?MYSQL必读

=? 等于
<=> 相等或者都等于空
< 小于
> 大于
<= 小于或等于
>= 大于或等于
<> 不等于
!= 不等于
?

2=2的结果为true,15<9的结果为false,3>2的结果为true,5!=4的结果为true.
字符串也可以进行比拟,'b'<'g'的结果为true,'h'>'k'的结果为false.
时间值可以比拟,较早的时间小于较晚的时间.'1980-5-4'<'1990-02-15'的结果为true,'1991-2-18'>'1991-2-19'的结果为false.
=比拟符与<=>比拟符的差别在于,当比拟两个空值的时候,=返回unknown,<=>返回为true.
?
3,子查询中的比拟运算符
例句:
?MYSQL必读

SELECT studentNO FROM student WHERE studentNO > (SELECT studentNO FROM student WHERE name='李四')
?

一个子查询可以用于WHERE子句中.上例中是一个标量子查询,子查询只能返回一个标量值.MYSQL必读

同样一个行子查询也可以用于WHERE子句中:
?MYSQL必读

SELECT studentNO FROM student WHERE (studentNO,name) = (SELECT studentNO,name FROM student WHERE name='李四')
?

4,不带比拟运算符的WHERE子句
WHERE子句并不一定带比拟运算符,当不带运算符时,会执行一个隐式转换.当0时转化为false,当其他值是转化为true.MYSQL必读

例句:
?MYSQL必读

SELECT studentNO FROM student WHERE 0
?

则会返回一个空集,因为每一行记载WHERE都返回false.MYSQL必读

例句:
?MYSQL必读

SELECT studentNO FROM student WHERE 1
或者
SELECT studentNO FROM student WHERE 'abc'
?

都将返回student表所有行记载的studentNO列.因为每一行记载WHERE都返回true.MYSQL必读

《Mysql应用msql select语句的WHERE子句详解》是否对您有启发,欢迎查看更多与《Mysql应用msql select语句的WHERE子句详解》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读