mysql采用like模糊匹配并根据匹配度的多少对结果排序
有这样一个需求,在mysql数据库进行模糊匹配一个数据表中的姓名在其它数据表中多个字段中进行匹配,效果是想实现根据匹配量的多少进行结果排序。
数据样子就是表名2中的数据列xingming和nicheng中可能会有表名1中的xingming,根据匹配量计算匹配分值:
<?php $sql_search="select id,xingming from 表名1 where id='19jp.com' "; $result=$mysqli->query($sql_search); while ($rs=$result->fetch_assoc()){ $sql_search2="select xingming,nicheng from 表名2 where id='19jp.com' and (xingming like '%".$rs["xingming"]."%' or nicheng like '%".$rs["xingming"]."%') order by ((xingming like '%".$rs["xingming"]."%') + (nicheng like '%".$rs["xingming"]."%') ) desc limit 1 "; $result2=$mysqli->query($sql_search2); if ($rs2=$result2->fetch_assoc()){ //处理的逻辑 $xingming=$rs2["xingming"]; //这个就是匹配次数最多的结果 } //九品源码 www.19jp.com } ?>
这里面最重要的是就是order by这一段PHP代码,可以相加排序,然后用desc是为了匹配度最高就是倒序排列,而limit 1是因为我只要一个最匹配的结果,如果用while循环就不要limit 1了。
order by ((xingming like '%".$rs["xingming"]."%') + (nicheng like '%".$rs["xingming"]."%') ) desc limit 1 ";
相关内容
这些是最新的
热门排行
- THINKPHP5+GatewayWorker+Workerman 开发在线客服系统
- 在手机浏览器网页中点击链接跳转到微信界面的方法
- 尊云网站目录系统 ThinkPHP5网站分类目录程序 v2.2.221011
- CentOS 7安装shadowsock(一键安装脚本)
- AdminTemplate 基于LayUI 2.4.5实现的网站后台管理模板
- 用NW.js(node-webkit)开发多平台的桌面客户端
- PHP生成随机昵称/用户名
- THINKPHP5网站分类目录程序 尊云网站目录系统
- 织梦(DEDECMS)微信支付接口 微信插件
- 基于LayUI开发的 网站后台管理模板 BeginnerAdmin
- 响应式后台网站模板 - AMA.ADMIN
- layuiAdmin后台管理模板 Iframe版
- LayUI 1.0.9 升级 至 LayUI 2.1.4 方法
- 简洁清爽的会员中心模板
- jQuery幸运大转盘抽奖活动代码