我试图检查表中是否存在两个值,例如:伪和电子邮件:如果用户要在我的网站上注册,则必须检查其伪和电子邮件是否已被使用。
这就是我要做的:
"SELECT EXISTS (SELECT 1 FROM users WHERE pseudo=$1)
UNION ALL
SELECT EXISTS (SELECT 1 FROM users WHERE mail=$2)", pseudo, email
(最后的“ pseudo,email”是因为我使用Golang,而这些是在语句中传递的变量)
它有效,例如返回“ false false”。但我希望它像这样返回:
pseudo: false
email: false
但是我不知道如何命名返回的布尔值。我已经尝试过了:
"SELECT EXISTS (SELECT 1 FROM users WHERE pseudo=$1) AS pseudo
UNION ALL
SELECT EXISTS (SELECT 1 FROM users WHERE mail=$2) AS email", pseudo, email
但这给我一个错误。
您知道我该怎么做吗?
答案 0 :(得分:0)
您可以在具有相应列名称的一行中获得结果,例如:
SELECT
EXISTS (SELECT 1 FROM users WHERE pseudo=$1) AS pseudo,
EXISTS (SELECT 1 FROM users WHERE mail=$2) AS mail