ThinkPHP5.0查询条件where()使用
发表于:2023-09-09 16:33:28浏览:119次
1.where()指定条件
链式操作中间方法,指定数据库操作条件,最常用的方法
参数传递方式(设定id等于10的条件)
① 一个参数,字符串条件直接查询
② 一个参数,字段名为键的关联数组
③ 二个参数,第一个为字段名,第二个参数为字段值
④ 三个参数,第一个为字段名,第二个为条件,第三个为值
返回影响行数
$data = array('name'=>'xiao1','create_time'=>time());
$res = db('table')->where('id=10')->update($data);
$res = db('table')->where(array('id'=>array('eq',10)))->update($data);
$res = db('table')->where('id',10)->update($data);
$res = db('table')->where('id','eq',10)->update($data);
dump($res)
返回结果:int(1)
2.字符串条件
$res = db('table')->where('id=15 and type=0')->select();
$res = db('table')->where('id=:id and type=:type')->bind(['id'=>15,'type'=>0])->select();
$res = db('table')->where('id=? and type=?')->bind([15,0])->select();
$res = db('table')->where('id=:id and type=:type',array('id'=>$id,'type'=>$type))->select();
$res = db('table')->where('id=? and type=?',array($id,$type))->select();
3.数组条件(tp官方推荐)
① 普通查询
$where = array(
'id'=>15,
'type'=>0,
)
$res = db('table')->where($where)->select()
② 表达式查询
$where[‘字段1’] = array(‘表达式’,‘查询条件1’)
$where[‘字段2’] = array(‘表达式’,‘查询条件2’)
db(‘table’)->where($where)->select()
表达式含义:
EQ : 等于(=)
NEQ : 不等于(<>)
GT : 大于(>)
EGT : 大于等于(>=)
LT : 小于(<)
ELT : 小于等于(<=)
LIKE : 模糊查询
[NOT]BETWEEN : (不在)区间查询
[NOT]IN : (不在)IN查询
例1:条件判断查询
$where = array(
'id'=>array('lt',10),
'type'=>arrray('eq',0),
)
$res = db('table')->where($where)->select();
例2:模糊查询
$where = array(
'name'=>array('like','%xiao%'),
)
$res = db('table')->where($where)->select();
$where = array(
'name'=>array('like',array('%xiao%','%wang%'),'OR'),
)
$res = db('table')->where($where)->select();
例3:[not]between查询
//数组
$where = array(
'id'=>array('between',array(1,2))
)
$res = db('table')->where($where)->select();
//字符串
$where = array(
'id'=>array('between','1,2')
)
$res = db('table')->where($where)->select();
例4:[not]in查询
//数组
$where = array(
'id'=>array('in',array(1,2))
)
$res = db('table')->where($where)->select();
//字符串
$where = array(
'id'=>array('in','1,2')
)in
$res = db('table')->where($where)->select();
4.快速查询
例1:不同字段相同条件的查询
//查询id=1且type=1的数据
$where = array(
'id&type'=>1
)
$res = db('table')->where($where)->select();
//查询id=1或type=1的数据
$where = array(
'id|type'=>1
)
$res = db('table')->where($where)->select();
例2:同一字段不同条件查询
// id >1 AND id<10
$where = array(
'id'=>array(array('gt',1),array('lt',10))
)
$res = db('table')->where($where)->select();
// id<10 OR id>12
$where = array(
'id'=>array(array('lt',10),array('gt',12),'OR')
)
$res = db('table')->where($where)->select();
5.多次调用
where()方法可以多次调用
$where = array(
'id'=>array('gt',5)
)
$where1 = array(
'id'=>array('lt',15),
'type'=>array('eq',0),
)
$res = db('table')->where($where)->where($where1)->select();
栏目分类全部>