MySQL(innoDB)PHP搜索多个单词
我正在运行MySQL版本5.1.57 我有一个HTML表单,用户可以在其中插入搜索字符串。我在这个字符串上创建了一个MySQL(innoDB)PHP搜索多个单词,php,mysql,full-text-search,innodb,Php,Mysql,Full Text Search,Innodb,我正在运行MySQL版本5.1.57 我有一个HTML表单,用户可以在其中插入搜索字符串。我在这个字符串上创建了一个$\u会话,然后在MySQL查询中运行它。大概是这样的: <?php $sql = mysql_query ("SELECT s.student_firstname, s.student_lastname FROM students s
$\u会话
,然后在MySQL
查询中运行它。大概是这样的:
<?php
$sql = mysql_query ("SELECT
s.student_firstname, s.student_lastname
FROM students s
WHERE (
s.student_firstname LIKE '%$searchstring%' OR
s.student_lastname LIKE '%$searchstring%
)
AND s.isActive = '1' ");
?>
我认为您应该在空格(“”)上拆分搜索到的字符串,并在您的查询或另一个查询中插入每个段。例如:
$str=“word1 word2”
首先搜索整个字符串“word1 word2”,然后在数据库中搜索“word1”和“word2”。
有了这个解决方案,你应该处理一个单词忽略列表,因为像“a,an,the,or,…”这样的单词不应该被搜索
我不确定innoDB表是否还有其他方法。。。最好的解决方案显然是使用“match-country”命令,但它仅在MyISAM下的全文索引中可用。您可能希望看到这个:还有这个