Heim > Datenbank > MySQL-Tutorial > mysql select 结合where子语句查询结果集

mysql select 结合where子语句查询结果集

WBOY
Freigeben: 2016-06-01 09:56:50
Original
1658 Leute haben es durchsucht

WHERE子句

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

<code class="language-sql">SELECT name FROM student WHERE studentNO = 2</code>
Nach dem Login kopieren

FROM子句返回的中间结果集如下:

<code class="language-sql">studentNO  name
1  张三
2  李四
3  王五
4  赵六</code>
Nach dem Login kopieren

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

<code class="language-sql">studentNO  name
2  李四</code>
Nach dem Login kopieren

然后执行SELECT语句,最终的结果集为:

<code class="language-sql">name
李四</code>
Nach dem Login kopieren

 

比较运算符

WHERE子句返回布尔值,所以WHERE子句经常会用到比较运算符。比较运算符有:

=  等于

相等或者都等于空

> 大于

>= 大于或等于

不等于

!= 不等于

 

2=2的结果为true,152的结果为true,5!=4的结果为true。

字符串也可以进行比较,'b''k'的结果为false。

时间值可以比较,较早的时间小于较晚的时间。'1980-5-4''1991-2-19'的结果为false。

=比较符与比较符的差别在于,当比较两个空值的时候,=返回unknown,返回为true。

 

子查询中的比较运算符

<code class="language-sql">SELECT studentNO FROM student WHERE studentNO > (SELECT studentNO FROM student WHERE name='李四')</code>
Nach dem Login kopieren

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

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

<code class="language-sql">SELECT studentNO FROM student WHERE (studentNO,name) = (SELECT studentNO,name FROM student WHERE name='李四')</code>
Nach dem Login kopieren

WHERE子句并不一定带比较运算符,当不带运算符时,会执行一个隐式转换。当0时转化为false,当其他值是转化为true。

 

不带比较运算符的WHERE子句

<code class="language-sql">SELECT studentNO FROM student WHERE 0</code>
Nach dem Login kopieren

则会返回一个空集,因为每一行记录WHERE都返回false。

<code class="language-sql">SELECT studentNO FROM student WHERE 1</code>
Nach dem Login kopieren

或者

<code class="language-sql">SELECT studentNO FROM student WHERE 'abc'</code>
Nach dem Login kopieren

都将返回student表所有行记录的studentNO列。因为每一行记录WHERE都返回true。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage