大家好,我是老姚。今天做项目开发时有个需求需要反向模糊查询,马上想到了instr()这个函数。
于是我先在命令行测试行不行;
select * FROM 表名 WHERE INSTR('值',字段名)>0
没想到一下就成功了还是很开心的;但在tp5的查询条件中是没有instr这个方法的,于是我根据DB的查询方法找到类进行添加最终得以实现。
修改\thinkphp\library\think\db\Builder.php文件
首先在数据库表达式后面添加:'instr'=>'INSTR'
第二步在大概381行添加:
elseif ('INSTR' == $exp){
$whereStr.= $exp.'('.$value.','.$key.') > 0';
}
然后像我这样调用就可以了
$where['id'] = array('instr','1,2,3,4');
大家有问题也可以下方留言。
发表评论 取消回复