tp5 Db查询时一个字段多个值迷糊查询 150

比如:p_name字段的值为12345我现在传过来的值却是不确定的有可能是123||234||345当然这样是可以查到的但当我传过来的值为124||245||135*值为... 比如:
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语句里面写循环 所以望大神指点
展开
 我来答
丿丶牛丁Orz
2019-04-24 · TA获得超过106个赞
知道答主
回答量:41
采纳率:0%
帮助的人:10.6万
展开全部
$arr = array('1','12','13','15');
$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%' ) )*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牵雾远0A
2018-08-10 · TA获得超过3609个赞
知道小有建树答主
回答量:442
采纳率:45%
帮助的人:52.2万
展开全部
模糊查询
$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."%"],
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式