如何在 mysql 中应用多词搜索

How to apply multy word search in mysql

我需要一些关于如何使我的 php 脚本看起来不仅仅是 1 个单词或多个单词的要点(John Doe)。目前我的脚本只能从指向的 table 中找到第一个词 "John"。这是我的脚本:

$query = $_GET['query'];   
$min_length = 1;

if (strlen($query) >= $min_length) { 
    $query = htmlspecialchars($query); 
    $query = mysql_real_escape_string($query);

    $raw_results = mysql_query(
        "SELECT * FROM filmi WHERE  (`title` LIKE '%".$query."%') 
         OR (`description` LIKE '%".$query."%') OR (`nomer` LIKE '%".$query."%')"
    ) or die(mysql_error());

    if (mysql_num_rows($raw_results) > 0) { 
        while ($results = mysql_fetch_array($raw_results)) {
            echo "


            print results       

            ";
        }
    } else { 
        echo "No results";
    }
} else { 
    echo "Minimum length is " . $min_length;
}

使用这段代码,我添加了新行。

这基本上是添加通配符 % 来代替 space,这样它将修改现有查询并向其添加通配符。这样它就可以找到包含给定搜索查询中所有单词的所有记录。

<?php
$query = $_GET['query']; 

$min_length = 1;

if(strlen($query) >= $min_length){
    $query = htmlspecialchars($query); 
    $query = mysql_real_escape_string($query);
    //added new line ################
    $query = str_replace(' ', '%', $query);
    $raw_results = mysql_query("SELECT * FROM filmi
        WHERE  (`title` LIKE '%".$query."%') OR (`description` LIKE '%".$query."%') OR (`nomer` LIKE '%".$query."%')") or die(mysql_error());

    if(mysql_num_rows($raw_results) > 0){ 
        while($results = mysql_fetch_array($raw_results)){
            echo "
            print results       
            ";
        }
    }
    else{ 
        echo "No results";
    }
}
else{ 
    echo "Minimum length is ".$min_length;
} ?>