SQL语句检索无效数据
请看下面的SQL语句SQL语句检索无效数据,sql,sql-server,jdbc,Sql,Sql Server,Jdbc,请看下面的SQL语句 select * from PhoneData where names = 'yohan' and nickName = 'yoises' and mobileNumber1 = 0000000000 or mobileNumber2 = 0000000000 在这里,有一个问题。也就是说,返回电话号码相同的所有结果。有两行电话号码相同,因此它通过忽略姓名、昵称和全部返回这两行。我想这是因为“或”的说法。我怎样才能解决这个问题?我需要了解姓名=y
select *
from PhoneData
where names = 'yohan'
and nickName = 'yoises'
and mobileNumber1 = 0000000000 or mobileNumber2 = 0000000000
在这里,有一个问题。也就是说,返回电话号码相同的所有结果。有两行电话号码相同,因此它通过忽略姓名、昵称和全部返回这两行。我想这是因为“或”的说法。我怎样才能解决这个问题?我需要了解姓名=yohan和mobileNumber1或mobileNumber2=000000000的详细信息 您需要在OR语句周围加上一些括号,如下所示:
select *
from PhoneData
where names = 'yohan'
and nickName = 'yoises'
and (mobileNumber1 = 0000000000
or mobileNumber2 = 0000000000)
没有括号,它实际上是在这样做:
select *
from PhoneData
where (names = 'yohan'
and nickName = 'yoises'
and mobileNumber1 = 0000000000)
or mobileNumber2 = 0000000000
您缺少括号:
select * from PhoneData where names = 'yohan' and nickName = 'yoises' and (mobileNumber1 = 0000000000 or mobileNumber2 = 0000000000)
和
运算符的优先级与或
不同,因此在组合它们时请确保明确。非常感谢您的帮助。成功了!我真的很感激:)。