select * from table where column = value ^ column2 = value

时间:2015-05-07 05:31:48

标签: php mysql

我正在用PHP创建一个登录系统。我需要用户使用他或她的用户名或电子邮件或电话号码登录密码。因为我在java中知道我们会像email==user^ username == user那样适用于MySQL。我可以在MySQL中做这样的事情吗?

Select * from user WHERE mail = 'user' ^ phoneNo= 'user' ^ username = 'user' and password = 'pass'

我已经尝试过但失败了。或者,我在PHP中使用多个if并像这样一次检查一个

if (mail == user){
}

3 个答案:

答案 0 :(得分:2)

MySQL的xor执行^在Java中所做的事情,但在这种情况下两者都不正确。您希望用户的用户名,电话号码或电子邮件等于给定的字符串。 xor表示其中只有一个可以匹配,而根据问题的文字,您似乎也希望用户拥有例如username或者mail等于'user'。对于这个用例,一个简单的or运算符应该可以解决这个问题:

SELECT * 
FROM   user 
WHERE  (mail = 'user' OR phoneNo = 'user' OR username = 'user') AND 
       password = 'pass'

或者,更优雅的是,您可以使用in运算符作为or系列的简写:

SELECT * 
FROM   user 
WHERE  'user' IN (mail, phoneNo, username) AND 
       password = 'pass'

答案 1 :(得分:2)

查询将是 -

Select * from user WHERE (mail = 'user' or phoneNo= 'user' or username = 'user') and password = 'pass'

Select * from user WHERE 'user' in (mail, phoneNo, username) and password = 'pass'

答案 2 :(得分:1)

使用此

SELECT * FROM user WHERE (mail = 'user' OR phoneNo= 'user' OR username = 'user') AND password = 'pass';