[英]select * from table where column = value ^ column2= value
我正在用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){
}
查詢將是-
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'
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
s系列的簡寫:
SELECT *
FROM user
WHERE 'user' IN (mail, phoneNo, username) AND
password = 'pass'
用這個
SELECT * FROM user WHERE (mail = 'user' OR phoneNo= 'user' OR username = 'user') AND password = 'pass';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.