检查是否存在两个值并返回名为boolean的值

时间:2018-11-23 18:49:36

标签: postgresql exists

我试图检查表中是否存在两个值,例如:伪和电子邮件:如果用户要在我的网站上注册,则必须检查其伪和电子邮件是否已被使用。

这就是我要做的:

"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

但这给我一个错误。

您知道我该怎么做吗?

1 个答案:

答案 0 :(得分:0)

您可以在具有相应列名称的一行中获得结果,例如:

SELECT 
    EXISTS (SELECT 1 FROM users WHERE pseudo=$1) AS pseudo,
    EXISTS (SELECT 1 FROM users WHERE mail=$2) AS mail