mysql 关键字全文搜索

use*_*846 0 php mysql

我正在我的网站上寻找关键字搜索,但遇到了一些困难

$q = "SELECT * from post WHERE post_k like '%".$_GET['s']."%'";
Run Code Online (Sandbox Code Playgroud)

搜索后的网站网址为website.com/?s=keyword

我没有进行全文搜索。例如,如果我搜索 Robin,我可以从 Batman 获得结果,因为它们的单词中都有 n。我正在寻找一个搜索,如果我输入 robin,我只会得到 robin 的结果。

谢谢

Yes*_*rry 5

您需要MATCH AGAINST与 一起使用FULLTEXT INDEX

CREATE FULLTEXT INDEX search_index ON post (post_k); 
Run Code Online (Sandbox Code Playgroud)

那么您的查询将更像是(使用 MySQLi 准备好的语句的示例):

$query = $mysqli->prepare("SELECT * FROM post WHERE MATCH(post_k) AGAINST(?)");
$query->bind_param('s', $_GET['s']);
Run Code Online (Sandbox Code Playgroud)