Php 非常高级的mysql搜索
我正在寻找一些建议,希望能在这里找到 我有更多的搜索领域,用于高级搜索。这些是: 搜索包含单词的简历。。。 搜索不包含单词的简历, 在位置内或 从一个特定的位置 要包括的特定教育 我想我们有3组: 在简历中搜索, 位置和 这就是教育 我有上面的代码。 问题是:如果我搜索一个组,它会起作用,但组合起来不起作用。 例如,如果我搜索包含单词a和排除位置uk的简历,它不会显示任何内容Php 非常高级的mysql搜索,php,mysql,sql,search,Php,Mysql,Sql,Search,我正在寻找一些建议,希望能在这里找到 我有更多的搜索领域,用于高级搜索。这些是: 搜索包含单词的简历。。。 搜索不包含单词的简历, 在位置内或 从一个特定的位置 要包括的特定教育 我想我们有3组: 在简历中搜索, 位置和 这就是教育 我有上面的代码。 问题是:如果我搜索一个组,它会起作用,但组合起来不起作用。 例如,如果我搜索包含单词a和排除位置uk的简历,它不会显示任何内容 (SELECT account_id FROM work <br> WHERE <br>
(SELECT account_id FROM work <br>
WHERE <br>
(company LIKE '%".$includewords."%'<br>
OR function LIKE '%".$includewords."%' <br>
OR duties LIKE '%".$includewords."%' <br>
OR achievements LIKE '%".$includewords."%' <br>
OR reason_for_leaving LIKE '%".$includewords."%')<br>
AND <br>
(company NOT LIKE '%".$excludewords."%'<br>
OR function NOT LIKE '%".$excludewords."%' <br>
OR duties NOT LIKE '%".$excludewords."%' <br>
OR achievements NOT LIKE '%".$excludewords."%' <br>
OR reason_for_leaving NOT LIKE '%".$excludewords."%'))<br><br>
UNION<br><br>
(SELECT account_id FROM personal <br>
WHERE <br>
actual_city LIKE '%".$includelocation."%'<br>
AND<br>
actual_city NOT LIKE '%".$excludelocation."%'<br>
)<br><br>
UNION<br><br>
(SELECT account_id FROM education <br>
WHERE <br>
institution LIKE '%".$school."%' OR<br>
grade_achieved LIKE '%".$school."%'<br>
)
因此,如果我合并搜索,它将不会返回任何错误和0个结果,因为找不到任何结果。是否使用匹配选项进行全文索引和全文搜索?如果是的话,看看这是否能让你朝着正确的方向开始。你的问题到底是什么还不清楚。发布变量的具体值可能会有所帮助,包括工作1组和非工作2组搜索以及实际和预期结果。您当前描述的内容似乎不准确,因为union只能扩展resultset-除非您更改了其他内容,或者您的单组搜索不准确,例如空变量的like“%”始终为true/不像“%.$excludewords”。%对于空$excludewords始终为false,因此,您得到的结果可能来自另一个组,或者您得到了一个错误。此外,您的第一个excludewords部分似乎不正确:尽管公司可能是apple,但由于函数可能与“%apple%”不同,因此最终表达式或ed表达式保持为真。是否使用匹配选项进行全文索引和全文搜索?如果是的话,看看这是否能让你朝着正确的方向开始。你的问题到底是什么还不清楚。发布变量的具体值可能会有所帮助,包括工作1组和非工作2组搜索以及实际和预期结果。您当前描述的内容似乎不准确,因为union只能扩展resultset-除非您更改了其他内容,或者您的单组搜索不准确,例如空变量的like“%”始终为true/不像“%.$excludewords”。%对于空$excludewords始终为false,因此,您得到的结果可能来自另一个组,或者您得到了一个错误。此外,您的第一个excludewords部分似乎不正确:尽管公司可能是apple,但由于函数可能与“%apple%”不同,因此最终表达式或ed表达式保持为真。