tp5 Db查询时一个字段多个值迷糊查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tp5 Db查询时一个字段多个值迷糊查询相关的知识,希望对你有一定的参考价值。
比如:
p_name 字段的值为 12345 我现在传过来的值却是不确定的 有可能是123 || 234 || 345 当然这样是可以查到的 但当我传过来的值为124 || 245 || 135 *值为打乱的*这样子就查不到了 所以我只能是把传过来的值拆分成为数组$aa= array(0=》1 1=》2 2=》3) *这里简略写一下 理解就好* 然后把数组里的值作为sql语句的where条件 但是这里array数组又是不固定的 有可能是1个值 也有可能是2 3 4 5 6 7个值都有可能 所以我也不可能$aa['0'], $aa['1']这样直接指定where条件 我想到的是foreach循环 但是小弟我又不会在sql语句里面写循环 所以望大神指点
$res = model('UserInfo')->where(function($query) use ($arr)
foreach ($arr as $key=>$val)
$query->whereOr('nickName', 'like', '%'.$val.'%');
)->select(false);
print_r($res);exit;
//输出结果
/*SELECT * FROM `userInfo` WHERE
( ( `nickName` LIKE '%1%'
OR `nickName` LIKE '%12%'
OR `nickName` LIKE '%13%'
OR `nickName` LIKE '%15%' ) )*/ 参考技术B 模糊查询
$where[] = ['title','like',"%".$sotitle."%"];
in查询
$where1 = [ ['role_id', 'in', '1,2,3'], ];
另一种方式:
if($sotitle)if($sotype=="id") $where[$sotype] = $sotitle; else $where = [ ['title', 'like', "%".$sotitle."%"],
TP数据查询给sql给查询加一个虚拟字段值
:查询一个表时,里面只有id主键,age年龄,name名字,三个字段,现在需要给他加一个固定字段type类型,全部等于1。
//新增一个字段type,值固定为1 $field = ‘id,age,name,1 AS type‘; //新增一个字段type,值等于id $field = ‘id,age,name,id AS type‘; $list = $this->where($where)->field($field)->order($order)->select();
以上是关于tp5 Db查询时一个字段多个值迷糊查询的主要内容,如果未能解决你的问题,请参考以下文章