Thinkphp5.1 where 和 whereOr 结合使用
$where=array(
['age','=',23]
);
$whereOrArray=array(
['name','like','%张%'],
['name','like','%王%'],
['name','like','%李%'],
);
Db::table('think_user')
->where($where)
->where(
function ($q) use ($whereOrArray) {
$q->whereOr($whereOrArray);
}
)->select();
/*
执行后的sql语句
SELECT * FROM `think_user`
WHERE
`age` = 23
AND
( `name` LIKE '%张%' OR `name` LIKE '%王%' OR `name` LIKE '%李%' ) ;
*/
use think\Db;
表达式 EXP ,支持SQL语法
$where = array( ['age','=',23], ['', 'exp', Db::raw(' LENGTH(mssn)>10')] );
Db::name('user')->where($where)->select()
快捷查询方法 whereExp
Db::name('user')->where('age','=',23)->whereExp('',Db::raw(' LENGTH(mssn)>10'))->select();
执行后的Sql语句:
SELECT * FROM `think_user` WHERE `age` = 23 AND ( LENGTH(mssn)>10 ) ;