Mysql Sql:;其中;及;及;

Mysql Sql:;其中;及;及;,mysql,sql,mysqli,Mysql,Sql,Mysqli,我想做一个搜索,你可以把用户名的电子邮件,它会给你的结果。 但由于某些原因,它不起作用 我认为这是错误的: $w_search = "WHERE u.user_name LIKE '%$q%' AND u.user_email LIKE '%$q%'"; 编辑: 完整的查询是: SELECT u.user_id, u.user_name, u.user_rank, u.user_email, p.p_name, p.p_profimg FROM u_registered AS u LEFT J

我想做一个搜索,你可以把用户名的电子邮件,它会给你的结果。 但由于某些原因,它不起作用

我认为这是错误的:

$w_search = "WHERE u.user_name LIKE '%$q%' AND u.user_email LIKE '%$q%'";
编辑: 完整的查询是:

SELECT u.user_id, u.user_name, u.user_rank, u.user_email, p.p_name, p.p_profimg FROM u_registered AS u LEFT JOIN u_profile AS p ON u.user_id = p.user_id '.$w_search.' ORDER BY u.user_id
你能帮我吗?
谢谢。

您的问题是where子句中有两个条件可能导致“不起作用”,请参见:

WHERE u.user_name LIKE '%$q%' AND u.user_email LIKE '%$q%'
这意味着您正在寻找的用户需要在其名称(
user\u name
)的部分(
q
)中包含
$q
),同时在其电子邮件的部分中包含
。如果你有一个叫巴特的家伙,他的电子邮件是simpsom@whatever.com您的查询将永远不会返回它,因为一个筛选器将返回true,而另一个筛选器将返回false

正确的方法是,根据
$q
是什么,或同时使用运算符,使用其中一个,以便:

WHERE u.user_name LIKE '%$q%' OR u.user_email LIKE '%$q%'
但是,如果这是一种测试,如果名称或电子邮件与您需要的数据库中给出的名称或电子邮件完全相同:

WHERE u.user_name = '$q'


从“选择不在哪里”开始。查询/代码的其余部分在哪里?你的数据结构是什么样子的?对不起,我现在编辑了这篇文章,我已经把完整的查询放进去了。是的,我同意你的看法。我对数据库和所有这些东西都很陌生。布里加多啊!呵呵,很高兴我能帮上忙。这是阿尔莫斯对的“奥布里加多!”在一起!不错的尝试:)
WHERE u.user_email = '$q'