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语句里面写循环 所以望大神指点 展开
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语句里面写循环 所以望大神指点 展开
2个回答
展开全部
$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%' ) )*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
模糊查询
$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."%"],
$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."%"],
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询