有时候我们需要的判断条件并不能直接得到,需要经过计算和过滤,这时候可以使用where
子句来实现。
还是以这张表为例子:
查询id为2的人的信息,为了演示where
子句的效果,所以这里故意写的复杂:
select * from student where name = (select name f判断rom student where id = 2);
这里可以拆分为两句,第一句是select name from student where id = 2
,找到id是2的姓名,然后判断姓名是不是等于这个,相等就查询出来。
例子:查询年龄在【学生id1
的年龄和id2
的年龄】之间的学生的数学成绩和英语成绩:
select name,math,english from student where age between (select age from student where id = 1) and (select age from student where id = 2);
实际上是查询年龄在18
到20
之间的学生成绩,这里只是为了演示where
子句的效果,刻意这样写的。结果如下图所示:
where
子句还有更多的用法,可以和之前的基本语法结合起来。