%like%不能正常工作

时间:2018-01-24 07:04:44

标签: php mysql sql

我在数据库中有一个表,其中有一个名为title的列。在那张桌子上想象我有一个汽车名称,例如丰田fj巡洋舰。现在,如果我使用%like%搜索并搜索%Toyota%,它将正确返回丰田fj巡洋舰的结果。现在,如果我像%Toyota f%一样搜索,它将再次正常返回。

当我尝试搜索%Toyota cru%然后它没有返回丰田fj巡洋舰的标题时出现问题。

$sql_sticky = mysql_query("SELECT `title`, `category`, `subcategory`, `type`, `times` FROM `product_search1` WHERE `title` LIKE '%$key%' order by times desc limit 30");

为什么会这样?

1 个答案:

答案 0 :(得分:4)

您正试图通过打破单词序列进行搜索。

要实现您的需求,一种解决方案是拆分单词并向其添加%模式。

因此,您的关键字应该成为%Toyota%cru%

您可以先在spaces中将%替换为PHP,如下所示:

$str = 'Toyota cru';
$queryStr = str_replace(' ', '%', $str);

$sql = "SELECT car_name FROM tbl_name WHERE carname LIKE '%$queryStr%'";