【问题标题】:Check if two values exists and return named boolean检查两个值是否存在并返回命名布尔值
【发布时间】:2023-03-28 04:52:01
【问题描述】:

我正在尝试检查表中是否存在两个值,例如伪和电子邮件:如果用户想在我的网站上注册,我必须检查他的伪和电子邮件是否已经被占用。

所以这就是我的工作:

"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

但它给了我一个错误。

你知道我该怎么做吗?

【问题讨论】:

    标签: postgresql exists


    【解决方案1】:

    您可以在具有适当列名的单行中获取结果,例如:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多