检查两个值是不是存在并返回命名布尔值

Posted

技术标签:

【中文标题】检查两个值是不是存在并返回命名布尔值【英文标题】:Check if two values exists and return named boolean检查两个值是否存在并返回命名布尔值 【发布时间】:2018-11-23 18:49:36 【问题描述】:

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

所以这就是我的工作:

"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】:

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

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

【讨论】:

以上是关于检查两个值是不是存在并返回命名布尔值的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何检查列表是不是包含数值并返回布尔值?

检查整数是不是为 0 并返回布尔值的简短方法

一种返回布尔值的方法,该布尔值标识两个数组的值是不是相同

检查三个布尔值中的两个是不是为真?

检查数组中的所有值是不是为真,然后返回一个真布尔语句(javascript)[重复]

== 检查布尔值是不是完全相等? - 爪哇