我有两个选择语句
SELECT username, password FROM users WHERE username='$Uname'
和
SELECT email_address FROM users WHERE email_address='$email'
我可以使用什么声明,以便我立即得到所有结果,即
用户名为结果[0],密码为结果[1],email_address为结果[2]
更好地解释。
我想检查我的数据库中是否已有用户名记录,然后获取密码,然后检查密码是否还有email_address的记录,以确保不允许用户重复使用用户名或电子邮件地址。
答案 0 :(得分:1)
我认为你想要一个“或”条件:
SELECT username, password, email_address
FROM users
WHERE username='$Uname' or email_address='$email'
您可以使用相关子查询检查电子邮件是否存在:
SELECT username, password, email_address
(select (case when count(*) > 0 then 'SHARED' else 'UNIQUE' end)
from users u2
where u.email_address = u2.email_address and
u.username <> u2.user_name
) as SharedOrUnique
FROM users u
WHERE username='$Uname' or email_address='$email'
答案 1 :(得分:1)
联合查询结合了多个选择查询的结果。
SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;
答案 2 :(得分:0)
如果您已经知道电子邮件地址(第二个声明变量),那么为什么您希望您的声明再次返回?
答案 3 :(得分:0)
我不知道你要做什么,但......
SELECT u1.username, u1.password, u2.email_address
from users u1, users u2
where u1.username='$UName'
and u2.email_address == '$email'
鉴于您的第二个查询将返回您传入的值....
SELECT username, password, '$email' as email_address FROM users WHERE username='$Uname'