mysql中and 和 or 联合使用

本文详细介绍了如何在MySQL中使用SQL语句进行复杂查询,包括如何正确使用AND和OR组合条件,以筛选出特定的学生考试成绩。通过实例展示了如何从学生成绩表和课程表中选取符合条件的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是两张表,我只列出有用的字段。
Table:student_score 学生成绩
sid(学生ID) cid(课程ID) score(分数)
5 1 50
5 2 110
5 3 64
5 4 null
……
Table:course 课程
id(ID) name(课程名) inexam(是否考了)
1 语文 1
2 数学 1
3 英语 1
4 理综 0

现在我要取出某次考试中语文成绩中高于80或低于40的学生ID,PHP中SQL语句可以这么写:

$sql="select s.sid from student_score as s,course as c where (s.score>=80 or s.score<=40) and s.cid=1 and s.cid=c.id and   c.inexam=1";

这里用一个小括号把两个用or组合起来的条件括了起来。

 

如果我要取出某次考试中语言成绩高于80数学成绩高于100的学生呢?这么写:

$sql="select s.sid from student_score as s,course as c where ((s.score>=80 and s.cid=1) or (s.score>=100 and s.cid=2) )   and s.cid=c.id and c.inexam=1";

 

总结:当mysql的WHERE语句中出现AND OR时,使用OR组合的并列条件要用小括号把两个条件和”OR”包起来。

 

文章转自:

https://blog.csdn.net/rongwenbin/article/details/27494069

 

转载于:https://www.cnblogs.com/zhaopengcheng/p/9453013.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值