企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 查询条件(WHERE) 查询的限制条件,在select()、get()、update()、delete()等一系列方法中都会使用到。 限制条件是一个多维数组,常规情况这个条件数组是放到方法的第三个参数上。如果有表链接的情况则是第四个参数。 >[warning] 在PHP版本大于等于5.4时,支持数组支持[]写法,如果您使用的PHP5.3及其以下版本请替换为array()写法。 <br/><br/> ## 单一条件判断 适用查询只需要设置一个条件的情况。 ~~~ public function getdata(){ $db = DB(); //实例化数据库操作类 //条件:check字段等于1的数据 $list = $db->select('users','*',['check' => 1]); //条件:user_id字段值等于50的数据 $list = $db->select('users','*',['user_id' => 50]); $user = $db->get('users','*',['user_id' => 50]); //条件:user_id字段值等于50,51,60,61的数据 $list = $db->select('users','*',[ 'user_id' => [50,51,60,61] ]); //条件:user_id字段值大于50的数据 $list = $db->select('users','*',['user_id[>]' => 50]); //条件:user_id字段值小于50的数据 $list = $db->select('users','*',['user_id[<]' => 50]); //条件:user_id字段值不等于50的数据 $list = $db->select('users','*',['user_id[!]' => 50]); //条件:user_id字段值大于等于50的数据 $list = $db->select('users','*',['user_id[>=]' => 50]); //条件:user_id字段值小于等于50的数据 $list = $db->select('users','*',['user_id[<=]' => 50]); //条件:user_id字段值在50至90之间的数据 $list = $db->select('users','*',[ 'user_id[<>]' => [50,90] ]); //条件:user_id字段值不介于50至90之间的数据 $list = $db->select('users','*',[ 'user_id[><]' => [50,90] ]); } ~~~ <br/><br/> ## 复合条件判断 适用查询只需要设置多个条件之间需要 AND 和 OR 操作时的情况。 此时注意的是,需要把条件名AND 或者 OR 作为键名,而键值是复合键名操作的条件数组。 ~~~ public function getdata(){ $db = DB(); //实例化数据库操作类 //条件:审核=1 并且 用户组ID=2 并且 年龄>20 的数据 $list = $db->select('users','*',[ 'AND' => [ 'check'=>1, 'group_id'=>2, 'age[>]'=>20 ] ]); //条件:用户名=jerry 或 邮箱=jerry@qq.com 或 手机=13166668888 的数据 $user = $db->get('users','*',[ 'OR' => [ 'user_name'=>'jerry', 'user_email'=>'jerry@qq.com', 'user_mob'=>'13166668888' ] ]); //条件:查找2个用户, //第一个用户条件是 用户名=tom 或 邮箱=tom@qq.com, //第二个用户条件是 用户名=jerry 或 邮箱=jerry@qq.com 。 $list = $db->select('users','*',[ 'AND' => [ 'OR'=> [ 'user_name'=>'tom', 'user_email'=>'tom@qq.com' ], 'OR'=> [ 'user_name'=>'jerry', 'user_email'=>'jerry@qq.com' ] ] ]); } ~~~ >[warning] 因为是以数组方式传递参数,所以不能出现复合条件键名重复出现的情况。 比如 [ 'AND'=>['id'=>1],'AND'=>['cid'=>2] ] 这是错误的; 比如 [ 'AND'=>['id'=>1], 'OR'=>['cid'=>2] ] 这是错误的; <br/><br/>