前段时间在SQL查询条件的处理上废了很大的劲,后来查询了很多的网站发现thinkphp有很多对where进行处理的方法有很多,总结了几种常用的!!!
查询值为Null的数据
// 查询email为空,并且name不为空的用户数据
User::whereNull('email')
->whereNotNull('name')
->select();
多个字段同一个查询条件
快捷查询方式是一种多字段相同查询条件的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|
分割表示OR
查询,用&
分割表示AND
查询,例如:
User::where('name|title','like','thinkphp%')
->where('create_time&update_time','>',0)
->find();
数组对象查询
如果你升级老版本的系统到5.1
,由于数组查询方式的变化,而你又不希望全部换成表达式查询,那么可以使用数组对象查询。
$map = [
'name' => ['like', 'thinkphp%'],
'title' => ['like', '%think%'],
'id' => ['>', 10],
'status' => 1,
];
$where = new \think\db\Where;
$where['id'] = ['in', [1, 2, 3]];
$where['title'] = ['like', '%php%'];
User::where(new Where($map))
->whereOr($where->enclose())
->select();
enclose
方法表示该查询条件两边会加上括号包起来。
使用快捷方法
对于一些常用的查询,系统封装了快捷查询方法,例如:
对于一些常用的查询,系统封装了快捷查询方法,例如:
User::whereIn('id', [1,2,3])
->whereLike('name', 'think%')
->select();
相当于下面的查询
User::where('id', 'in', [1,2,3])
->where('name', 'like',