鱼C论坛

 找回密码
 立即注册
查看: 3671|回复: 3

MySQL中or问题

[复制链接]
发表于 2020-12-10 20:32:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.select * from students where name = '郭镶' or '王美丽';这个只能查出第一个值郭襄
2.select * from students where name = '郭镶' or name = '王美丽';这个可以查出两个值
3.select * from students where name = '张三' or 1 = 1 or '';这个可以查出表中所有值。
那么想问一下,为什么第一个只能查出一个值,第二个却能查出两个值,or不应该是只要任意一个条件为真,就可以查出来吗?那么它不应该是随机取一个满足的条件来查询吗?事实上并不是,比如,第一个例子,它就只能取到郭襄,第二个例子,它能取到两个值。第三个例子,能取到表中所有值。那么这个or是怎么选择符合的条件来查询值的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-12-10 21:19:35 | 显示全部楼层
C:\Users\ATW\Desktop\QQ图片20201210211805.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 21:20:45 | 显示全部楼层


1.select*fromstudentswherename=' '郭镶'or'王美丽';这个只能查出第一个郭襄

2.select * from students where name = '郭镶' or name = '王美丽' ;这个可以查出两个值

3.select * from students where name = '张三

l =1or'';这个可以查出表中所有值。

那么想问一下,为什么第一个只能查出一个值,第二个却能查出两个值,or不应该是只要任意-个条件为真, 就可以查出来吗?那么它不应该是随机取一个满足的条件来查询吗?事实.上并不是,那么这个or是怎么

1.select★from students where name = '郭镶' or '王美丽';这个只能查出第一个郭襄

解释:这条sq1有2个条件,逻辑运算符是'或’,第一是name='郭镶',第二是,王美丽,

是否为true,

因为第一满足,第二不满足,所以只查出第一name = '郭镶'的结果

'王美丽' ;这个可以查出两个值

第一是name='郭镶’,第二是name='王美丽’, 表里有这两个值所以能查出两个值

3.select★from students where name = '张三’or 1 = 1 or '' ;这个可以查出表中所有值。

解释:这条sq1有3个条件,逻辑运算符是‘或’,第一是name='张三’,第二是1=1,第三是'是否为true,因为1=1是永远满足的,所以查询结果是表中所有值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 21:21:31 | 显示全部楼层
已搞懂,小伙伴有疑惑的可以看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 05:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表