php mysql 检测字段中相同的关键字,不要模糊查询。
表A字段idtitle1上海百度科技有限公司2北京百度科技有限公司3沈阳知道实业有限公司4南京谷歌贸易有限公司5武汉海尔工程有限公司6青海大众文化传播有限公司7山东济南格...
表A字段 id title
1 上海百度科技有限公司
2 北京百度科技有限公司
3 沈阳知道实业有限公司
4 南京谷歌贸易有限公司
5 武汉海尔工程有限公司
6 青海大众文化传播有限公司
7 山东济南格瑞特科技实业有限公司
例如以上字段中的内容有什么好的办法首先排除掉地区名称,和有限公司 以及实业,贸易,科技,等类型的公司。 只留真正的名称,然后把所有字段中相同的列出来。
因为公司现在CRM中有很多重复的公司名称,但是公司名称又不统一,有的可能是简写,例如
上海百度
有的则写的是上海百度科技有限公司。哪位高手有办法把重复的关键字列出来吗?
不要手动输入关键字模糊查询的。 要求运行PHP 就能够将所有相同关键字的公司都列出来。
请给出实例,谢谢了!如果能用, 另外补200分。到时候给链接,随便回答,马上采纳送200分。 展开
1 上海百度科技有限公司
2 北京百度科技有限公司
3 沈阳知道实业有限公司
4 南京谷歌贸易有限公司
5 武汉海尔工程有限公司
6 青海大众文化传播有限公司
7 山东济南格瑞特科技实业有限公司
例如以上字段中的内容有什么好的办法首先排除掉地区名称,和有限公司 以及实业,贸易,科技,等类型的公司。 只留真正的名称,然后把所有字段中相同的列出来。
因为公司现在CRM中有很多重复的公司名称,但是公司名称又不统一,有的可能是简写,例如
上海百度
有的则写的是上海百度科技有限公司。哪位高手有办法把重复的关键字列出来吗?
不要手动输入关键字模糊查询的。 要求运行PHP 就能够将所有相同关键字的公司都列出来。
请给出实例,谢谢了!如果能用, 另外补200分。到时候给链接,随便回答,马上采纳送200分。 展开
展开全部
$rows=$db->select('b','id,title');
$area_str=array( "上海" , "北京" , "沈阳" , "南京" , " 武汉","青海" ,"山东","济南","武汉");//地区关键字
$key_str = array("有限公司" , "实业" , "贸易" , "科技","工程" );//名称关键字
$str=array_merge($area_str,$key_str);//合并数组
$arr=array();
foreach($rows as $row){
$title = str_replace ( $str , "" , $row['title'] );
$arr[$row['id']]=$title;//将对应的id和替换的title加进数组
}
//接下来,对比$arr数组的重复的元素,并取出指定的key值,然后到数据库查询指定id即可
更多追问追答
追问
您好,请写个完整的简单的例子吗! 谢谢了!
追答
好吧,那我写完整一点
$rows=$db->select('b','title');//查询title数据
$area_str=array( "上海" , "北京" , "沈阳" , "南京" , " 武汉","青海" ,"山东","济南","武汉");//地区关键字
$key_str = array("有限公司" , "实业" , "贸易" , "科技","工程" );//名称关键字
$str=array_merge($area_str,$key_str);//合并数组
$arr=array();
foreach($rows as $row){
$title = str_replace ( $str , "" , $row['title'] );
$arr[]=$title;//将替换的title加进数组,得到真正的名称
}
$arr_un=array_unique($arr);
$arr_assoc=array_diff_assoc($arr,$arr_un);
//在数据库查询重复着
foreach($arr_assoc as $key){
$row_key=$db->select_key($key);
}
print_r($row_key);//输入重复的列
mysql 我用的是pdo连接:
查所有title数据:
function select($table,$Column='*'){ //查询指定列的信息
return $this->pdo->query("select $Column from $table")->fetchAll();
}
查询重复值:
function select_key($key){
return $this->pdo->query("select title from b where title like '%$key%'")->fetchAll();
}
展开全部
步骤:
1、取出所有数据;
2、str_replace(array_merge(array('北京','上海',...),array('有限公司','实业','贸易','科技')),'',$row['title']);
去掉公司名称中的字,当然,想要去掉所有地区名称的话要有所有地区名称的数据;
3、这样就得到了所有去除特殊字之后的名称,然后进行比较或者其他都是很方便的了。
有其他不清楚的继续问哦。
1、取出所有数据;
2、str_replace(array_merge(array('北京','上海',...),array('有限公司','实业','贸易','科技')),'',$row['title']);
去掉公司名称中的字,当然,想要去掉所有地区名称的话要有所有地区名称的数据;
3、这样就得到了所有去除特殊字之后的名称,然后进行比较或者其他都是很方便的了。
有其他不清楚的继续问哦。
追问
您好,请写个完整的简单的例子吗! 谢谢了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询