Проверьте, существуют ли два значения, и верните логическое имя - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь проверить, существуют ли два значения в таблице, например, псевдо и электронная почта: если пользователь хочет зарегистрироваться на моем веб-сайте, я должен проверить, заняты ли его псевдо и электронная почта.

Так вот, что я делаю:

"SELECT EXISTS (SELECT 1 FROM users WHERE pseudo=$1) 
UNION ALL 
SELECT EXISTS (SELECT 1 FROM users WHERE mail=$2)", 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 голосов
/ 23 ноября 2018

Вы можете получить результат в одной строке с соответствующими именами столбцов, например:

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