2016-07-04 72 views
0

我相信這應該是相對簡單的,但我似乎無法弄清楚它的邏輯。MySQL選擇存在多個值

我將從我正在尋找的東西開始。我希望能夠通過SELECT查詢傳遞值(如電子郵件地址),並讓它輸出是否存在這些行。這將是這樣的:

# PASS Values [email protected] and [email protected] in. 
# For these purposes let's pretend that [email protected] exists 
# and [email protected] does not. 

+----------------------+--------+ 
| E-mail    | Exists | 
+----------------------+--------+ 
| [email protected]  | 1  | 
| [email protected] | 0  | 
+----------------------+--------+ 

這裏有答案了一個結果:MySQL EXISTS return 1 or 0但我想就此展開時遇到問題搞清楚了出來。

任何幫助將是偉大的。謝謝!

回答

1

假設我正確理解你的問題,你不能單獨使用in。一種選擇是創建一個子查詢與outer join,然後用case

select t.email, 
     case when yt.email is not null then 1 else 0 end `exists` 
from (select '[email protected]' as email union all select '[email protected]') t 
    left join yourtable yt on t.email = yt.email 

注:在聲明中還需要對exists反引號。

+0

這是有道理的。它拋出了一個我試圖識別的錯誤。錯誤是:'#1064 - 你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'exist,from(選擇'[email protected]'作爲email union all''example @ example。at line 2''')附近使用正確的語法。能夠儘可能多的電子郵件,我想聯合所有選擇語句,正確嗎? – MillerMedia

+0

我試着刪除'union all select'語句來測試一個電子郵件地址,但也發生了錯誤。這似乎是一個語法錯誤... – MillerMedia

+0

@MillerMedia刪除'存在'字後的逗號 –