分词查询排序处理办法,这是我的解决方案分享给大家,大家有更好的方案欢迎指导
$arr = ['crmeb','支付','报错'];
if(count($arr))
{
$px = ''; //排序计算
$wh = ''; // where 查询条件
foreach($arr as $v)
{
$px .= "sign(LOCATE('".$v."',title)+";
$wh .= "title LIKE '%".$v."%' or ";
}
$px = rtrim($px,'+').' as px';
$wh = rtrim($px,'or');
//查询sql语句,BINARY 是忽略大小写问题
$sql = "SELECT BINARY title,".$px." FROM table WHERE ".$wh." ORDER BY px DESC";
}
LOCATE(substr, str); //查询 str 在 substr中的位置
sign() //函数:判断数值的正负性,如果数值是正数,返回值是1,如果该数值是负数,返回值是-1,如果该数值是 0,返回值也是0。