mysql和/或查询

mri*_*ka3 1 php mysql

我需要进行搜索查询,用户可以按名称或课程或年份或成员进行搜索,上述任何一个,用户cam也可以搜索所有字段或任意数量的字段,例如; -as only with名称和课程.

怎么可能?我不想进行不同的查询,是否可以使用单个查询?现在我的查询是:

$query="SELECT * FROM fsb_profile 
    WHERE profile_name = '".$_REQUEST['name']."' 
    AND profile_member= '".$_REQUEST['type']."' 
    AND profile_year= '".$_REQUEST['year']."' 
    AND profile_course='".$_REQUEST['course']."' 
     OR profile_name = '".$_REQUEST['name']."' 
     OR profile_member= '".$_REQUEST['type']."' 
     OR profile_year= '".$_REQUEST['year']."' 
     OR profile_course='".$_REQUEST['course']."'";
Run Code Online (Sandbox Code Playgroud)

但它没有运行,它只能搜索任何一个领域,它是如何可能的?

Mar*_*ker 11

如果你在where子句中混合使用OR,那么使用括号来确切表明组合应该如何表达是有用的:(A AND B)或C与A AND(B OR C)不同.SQL将以自己的方式解释A AND B OR C(没有任何括号),但不一定是您可能期望(或打算)解释它的方式.

例如

WHERE Likes Soccer AND ( Likes Pizza OR Likes Whiskey )
Run Code Online (Sandbox Code Playgroud)

正在寻找一个喜欢足球的人,喜欢披萨或威士忌; 所以它会挑选喜欢披萨的足球爱好者,喜欢威士忌的足球爱好者,喜欢披萨和威士忌的足球爱好者

WHERE ( Likes Soccer AND  Likes Pizza ) OR Likes Whiskey
Run Code Online (Sandbox Code Playgroud)

正在寻找一个喜欢足球和比萨的人,或者喜欢威士忌的人; 所以它会挑选足球爱好者,他们也必须喜欢披萨,或威士忌爱好者,或者足球爱好者,他们也必须喜欢披萨,但也可能喜欢威士忌