我已经在网站上创建了搜索功能,该功能使用LIKE
搜索数据库,如下所示:
$term = $_GET['search'];
$newterm = '%'.$term.'%';
$params = [$newterm];
$sql = "SELECT * FROM products WHERE product_name LIKE ?";
$stmt = DB::run($sql,$params);
但是,这不适用于拼写错误或其他字符。
例如,如果我的数据库包含:[蓝色帽子,红色帽子,黑色帽子,白色帽子]。 如果我搜索帽子,所有结果将按预期返回。 如果我搜索帽子,将不会获得任何结果。 如果我搜索hta,将无法获得结果。
有没有更好的方法可以在数据库中搜索类似的结果,或者有类似Google的警告,它会根据数据库中的实际内容发出类似这样的信息:
You searched for hta, did you mean hat?