大家好,我是老姚。今天做项目开发时有个需求需要反向模糊查询,马上想到了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');


大家有问题也可以下方留言。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
意见
建议
发表
评论
返回
顶部