MySQL中or问题
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是怎么选择符合的条件来查询值的
C:\Users\ATW\Desktop\QQ图片20201210211805.jpg
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是永远满足的,所以查询结果是表中所有值
已搞懂,小伙伴有疑惑的可以看看
页:
[1]