2017-04-20 43 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

相关问题