php - 如何使用 PHP/MySQL 搜索其他变量的特定内容?

标签 php mysql search

我正在为一个与受虐待和被忽视的动物合作的组织创建一个网站搜索,一切正常,直到搜索包含特定值。例如,如果有人在搜索字段中输入“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 语句有什么问题导致了问题吗?非常感谢任何帮助。

最佳答案

我不确定 mysql 处理条件的顺序,但我会尝试将所有 OR 语句包装在括号中:

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

关于php - 如何使用 PHP/MySQL 搜索其他变量的特定内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6379414/

相关文章:

php - 来自数组的链接

php - 如何创建我自己的 PHP 魔术方法名称?

php - 如果名称已在数据库中,则更新 MYSQL 表

java - 我如何解密和加密 Java 程序的 Joomla 用户密码?

eclipse - Eclipse搜索菜单被随机禁用

php - 安装 Laravel 所需的最低 php 版本

mysql - 使用 Active Record 和 Mysql 合并 2 个表的最佳方法是什么

php - 无法在ajax中重定向和显示消息

java - 有没有办法过滤/搜索 HTMLEditorKit 中的内容?

PHP MySQL 搜索标题和多个标签顺序