SQL语句检索无效数据

Pea*_*Gen 0 sql sql-server jdbc

看看下面的SQL语句

select * 
from PhoneData 
where  names = 'yohan' 
    and nickName = 'yoises' 
    and mobileNumber1 = 0000000000 or mobileNumber2 = 0000000000
Run Code Online (Sandbox Code Playgroud)

在这里,有一个问题.这就是返回电话号码相同的所有结果.有两行具有相同的电话号码,因此它通过忽略名称,昵称和所有来返回两者.我认为这是因为"或"声明.我怎么解决这个问题?我需要获取姓名= yohan和mobileNumber1或mobileNumber2 = 000000000的详细信息.

Red*_*ter 9

你的OR语句需要一些括号,如下所示:

select * 
from PhoneData 
where names = 'yohan' 
    and nickName = 'yoises' 
    and (mobileNumber1 = 0000000000 
        or mobileNumber2 = 0000000000)
Run Code Online (Sandbox Code Playgroud)

没有括号,它实际上是这样做的:

select * 
from PhoneData 
where (names = 'yohan' 
    and nickName = 'yoises' 
    and mobileNumber1 = 0000000000) 
        or mobileNumber2 = 0000000000
Run Code Online (Sandbox Code Playgroud)