Php %例如%工作不正常

Php %例如%工作不正常,php,mysql,sql,Php,Mysql,Sql,我在数据库中有一个表,它有一个名为title的列。在这张表中,假设我保存了一个汽车名称,例如丰田fj巡洋舰。现在,如果我使用%like%和%Toyota%搜索,它将正确返回结果Toyota fj cruiser。现在,如果我像%f%一样搜索,它将再次正确返回 当我尝试像%Toyota cru%这样搜索时,问题出现了,然后它不会返回标题Toyota fj cruiser $sql_sticky = mysql_query("SELECT `title`, `category`, `subcateg

我在数据库中有一个表,它有一个名为title的列。在这张表中,假设我保存了一个汽车名称,例如丰田fj巡洋舰。现在,如果我使用%like%和%Toyota%搜索,它将正确返回结果Toyota fj cruiser。现在,如果我像%f%一样搜索,它将再次正确返回

当我尝试像%Toyota cru%这样搜索时,问题出现了,然后它不会返回标题Toyota fj cruiser

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

为什么会发生这种情况

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

要实现您所需要的功能,一个解决方案是拆分单词并向其中添加
%
模式

所以你的关键词应该变成
%Toyota%cru%

您可以先将
PHP
中的
空格
替换为
%
,如下所示:

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

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

把你想要的代码贴出来tried@SougataBose那么,如果我必须做到这一点,在这种情况下应该怎么做?@Thamaraiselvam补充道,请检查谢谢。停止使用不推荐的mysql API。使用mysqli或PDO。@Jens其客户的旧代码,我知道它已贬值:(感谢Samir为您提供的时间和分享您的知识。它现在工作得很好:)欢迎您!快乐编码!