2017-04-20 71 views
0

我正在尋找一種方法來查詢我的所有用戶(很簡單),但我需要獲得特定用戶回到結果。我會盡力解釋下面的最佳做法,但總之我想使用電子郵件地址列表作爲參考,以吸引所有匹配這些電子郵件地址的用戶。查詢MySQL數據庫與他們的電子郵件的用戶名地址

簡述

我有一個WordPress的網站,我運行的事件。當人們註冊這些事件時,會爲他們創建一個帳戶。還有另一個與會者的表格將這些用戶配置文件鏈接到他們的註冊。

因爲它是現在我需要獲得特定於一個事件組織者的人的名單。我認爲最好的方法是使用他們的來自參與者信息的電子郵件地址並查詢我的wp_users表中的用戶名。

SELECT display_name 
FROM `mydatabase`.`wp_users` WHERE `user_email` LIKE 
'[email protected]' OR 
'[email protected]' OR 
'[email protected]'; 

我已經刪除了真實的電子郵件並更改了數據庫名稱。

什麼,我想實現的是,將通過我的用戶比較他們的電子郵件地址,我提供了在表中的用戶列表運行並返回它們的任何匹配的查詢。

因爲它是現在它返回它找到並停止的第一個結果。

我有電子郵件蓄勢待發的名單,但我在努力得到這個工作。

回答

1

您需要where條款

SELECT display_name 
FROM `mydatabase`.`wp_users` 
WHERE `user_email` = '[email protected]' 
    OR `user_email` = '[email protected]' 
    OR `user_email` = '[email protected]' 

在重複列名這樣或使用IN()

SELECT display_name 
FROM `mydatabase`.`wp_users` 
WHERE `user_email` IN ('[email protected]', '[email protected]', '[email protected]') 

而且like只使用通配符搜索時。例如

where email like '%@mydomain.com' 
+0

謝謝Juergen。我剛剛嘗試了兩種方法,兩者都完全按照我的要求進行。感謝您的時間。 您發佈的兩種解決方案在性能方面是否有區別? 感謝您澄清LIKE子句。我認爲這是使用LIKE子句時創建通配符的'%'。 非常感謝il將此添加到我的OneNote中。 PhilB – philb

+0

您使用哪一個沒有區別,只有一個:當in子句只包含一個null值時,完整的比較返回false。所以,如果列中有'null'值,請不要使用'in' –

+0

值得注意的是,我的數據中可能存在一些空值。所以你可能在那裏救了我一些時間。 謝謝! – philb

0

所以我設法在發佈後幾分鐘就知道這一點。

我沒有固定的初始問題,但我設法找到和創造動力BI的兩組數據之間的關係,並得到我所需要的清單。

雖然感謝。

PhilB

+0

您知道您的查詢是錯誤的嗎? –

+0

嗨,我認爲這可能是,但如果你可以提供一些洞察力,爲什麼然後我會很樂意接受它作爲一個解決方案! – philb

相關問題