MySql 在多列中搜索姓名和电子邮件

MySql search name and email in multiple column

我在 mysql 的多列中匹配/搜索值时遇到问题。

在我的 table 中,我有姓名、所有者、电子邮件、altemail、altemail2、altemail3 列名称。

姓名=约翰; 电子邮件 = 约翰@doe.com

现在姓名可能在姓名或所有者栏中,电子邮件可能在以上四栏中。

现在我想进行搜索并列出包含姓名和电子邮件的结果。意味着姓名和电子邮件应该匹配,而不仅仅是姓名或电子邮件。

这是我到目前为止所做的,但没有奏效:

SELECT*                     
FROM $table
WHERE name = '%s' OR owner = '%s' AND email = '%s' OR alt_email = '%s'
OR alt_email2 = '%s' OR alt_email3 = '%s'",$name,$email,$email,$email,$email);

但这里如果名称匹配则显示结果并忽略电子邮件,或者如果电子邮件匹配则显示结果忽略名称。但我需要该用户信息来匹配姓名和电子邮件。

再次感谢您的帮助。

这应该有效:

SELECT * FROM $table WHERE (name = '%s' OR owner = '%s') AND (email = '%s' OR alt_email = '%s' OR alt_email2 = '%s' OR alt_email3 = '%s')",$name,$email,$email,$email,$email);

将您的查询更改为此

SELECT*                     
FROM $table
WHERE (name = '%s' OR owner = '%s') AND (email = '%s' OR alt_email = '%s'
OR alt_email2 = '%s' OR alt_email3 = '%s')",$name,$name,$email,$email,$email,$email);