Php %例如%工作不正常
我在数据库中有一个表,它有一个名为title的列。在这张表中,假设我保存了一个汽车名称,例如丰田fj巡洋舰。现在,如果我使用%like%和%Toyota%搜索,它将正确返回结果Toyota fj cruiser。现在,如果我像%f%一样搜索,它将再次正确返回 当我尝试像%Toyota cru%这样搜索时,问题出现了,然后它不会返回标题Toyota fj cruiserPhp %例如%工作不正常,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
$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为您提供的时间和分享您的知识。它现在工作得很好:)欢迎您!快乐编码!