我必须开发一个简单的搜索页面,将搜索字符串与 MySQL 表中的字段相匹配。
假设数据库表是“records”,考虑的字段是“record_title”。还要说以下是行中的“record_titles”。
字1字2
字1 字3 字4
字5 字2 字1
词6
现在在搜索表单中,假设用户提交搜索词,例如“word1 word7”、“word1”、“word1 word5”、“word1 word2”等,它应该返回包含搜索词中至少一个单词的记录标题。它不应该将搜索字符串作为子字符串,例如,如果搜索词是“word”,它不应该返回上述记录集中的任何记录。
我尝试使用以下内容,但有时它不匹配单个单词。
MATCH(`recordTitle`) AGAINST ('+word1 +word2' IN BOOLEAN MODE);
如何使用它(或其他解决方案)来选择包含至少一个单词匹配的记录。
谢谢。
GUIR
最佳答案
其实你可以使用sql in操作符 - http://www.w3schools.com/sql/sql_in.asp 以及 php implode 函数,用于创建要在 sql 字符串中使用的数组的逗号分隔字符串。
$searchArr = implode(', ', $arraySearch);
$sql = "select * from records where record_title in ($searchArr);";
关于MySQL 查询过滤包含搜索字符串中任何单词的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35830294/