我正在为一个与受虐待和被忽视的动物合作的组织创建一个网站搜索,并且在搜索包含特定值之前一切正常。例如,如果有人在搜索字段中输入“braxton black”,它将正确搜索这些术语,并正确显示结果。但是,如果他们使用高级搜索并选择“雄性”,则结果会返回雄性和雌性动物,就像那部分无关紧要。
下面是通过搜索“braxton black”并选择“Female”作为动物性别生成的示例 SQL 语句:
SELECT * FROM ans WHERE (ans_name LIKE '%braxton%' OR ans_name LIKE '%black%') OR (ans_color LIKE '%braxton%' OR ans_color LIKE '%black%') OR (ans_age LIKE '%braxton%' OR ans_age LIKE '%black%') OR (ans_desc LIKE '%braxton%' OR ans_desc LIKE '%black%') AND ans_sex = 'Female' GROUP BY ans_id
所有字段都是正确的,并且“ans_sex”字段中的术语是男性或女性,因此它会搜索确切的术语。任何人都可以看到导致问题的此 SQL 语句的任何问题吗?任何帮助是极大的赞赏。