Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过扩大匹配来改进搜索结果_Php_String Matching - Fatal编程技术网

Php 通过扩大匹配来改进搜索结果

Php 通过扩大匹配来改进搜索结果,php,string-matching,Php,String Matching,我正在尝试使用PHP改进搜索结果。e、 g.当产品名称为ZSX-3185BC时,用户在放置类似ZSX3185BC的东西时无法找到该产品。到目前为止,我得到了如下结果: $input = '01.10-2010'; $to_replace = array('.','-'); $clean = str_replace($to_replace, '/',$input);` 我已经试过了,但是它不能正常工作,不确定,在评论中没有详细说明 试试这个: SELECT * FROM tablename

我正在尝试使用PHP改进搜索结果。e、 g.当产品名称为ZSX-3185BC时,用户在放置类似ZSX3185BC的东西时无法找到该产品。到目前为止,我得到了如下结果:

$input = '01.10-2010';  
$to_replace = array('.','-');
$clean = str_replace($to_replace, '/',$input);`
我已经试过了,但是它不能正常工作,不确定,在评论中没有详细说明

试试这个:

SELECT * FROM tablename WHERE replace(fieldname, '-', '') like '%ZSX3185BC%';
您应该尝试直接在数据库查询中进行这种模糊匹配。模糊字符串匹配的常用方法是

MySQL没有这种内置功能,但是可以添加


基本方法是向MySQL添加一个存储函数。有一个作为存储函数的函数。

是否要在mysql查询中直接替换特殊字符来获得搜索结果?显示一些您尝试的精确代码。$str=$len=strlen$strSearch-1;//循环搜索字符串以检查每个字符是否可接受,并去除那些不适用于$i=0的字符$这将强制进行全表扫描,并且不能使用任何索引。选择*是一种糟糕的做法-指定列。我知道您不知道本例中未提供的列,但请不要键入星号!我只是举了个例子,他可以指定他想要的列。 SELECT * FROM tablename WHERE replace(fieldname, '-', '') like '%ZSX3185BC%';