2013-05-05 48 views
0

取一個字段值我有一個表「USERS」:單個SQL查詢到兩個輸入值

name | passwd | email 

有沒有辦法做到在一個查詢以下...

SELECT name FROM USERS WHERE email='input_email_1'; 
SELECT name FROM USERS WHERE email='input_email_2'; 

我的意思是,如果我有兩個email_addresses,如何在單個查詢中爲兩個email_addresses從USERS表中獲取「名稱」。

在此先感謝..

+0

除了當前'或'和'in'的答案,還有'union'的使用,但它並不常見最好的方式,所以我只是在評論中提到它。 – paxdiablo 2013-05-05 04:02:06

回答

4

可以使用IN

SELECT * FROM Users WHERE email IN ('email1', 'email2', 'more list....') 
+1

+1等價於OR,但無論如何+1);!不太確定我喜歡SELECT *雖然... – 2013-05-05 04:00:12

+0

感謝您的快速回復......但我認爲,我不清楚我的問題......讓我告訴你確切的情況......我正在做一項任務,其中我得到2個電子郵件地址爲「發件人」,第二個爲「接收者」......我必須分別從發件人和收件人處獲得「姓名」......這將是... SELECT senderName(用於發件人電子郵件),receiverName(用於接收電子郵件)FROM USERS .... – Sonu 2013-05-05 04:12:41

+0

爲什麼不在應用程序級別做一個條件?無論如何,這個怎麼樣? 'SELECT MAX(CASE當email ='email1'THEN name END)SenderName, \t \t MAX(CASE WHEN email ='email2'THEN name END)ReceiverName FROM Users WHERE email IN('email1','email2') ' – 2013-05-05 04:19:45

2
SELECT name FROM USERS WHERE email='input_email_1' OR email='input_email_2'; 
+0

感謝快速回復...但是我想,我是不是清楚我的問題......讓我告訴你確切的情況......我做在我一個任務得到2個電子郵件地址爲「發件人」,第二個爲「接收者」......我必須從發件人和收件人分別獲取「姓名」.... – Sonu 2013-05-05 04:04:38

0

我可能是完全錯誤的,但它看起來像(從評論)你正在尋找這樣的事情

SELECT u1.name sender_name, 
     u2.name receiver_name 
    FROM messages m JOIN 
     users u1 ON m.sender = u1.email JOIN 
     users u2 ON m.receiver = u2.email