💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
>[danger] where 条件设计稍微有点复杂,所以单独拿出来 >多数情况下使用数组参数即可满足要求 >在实现复杂的where条件时,如果数组参数满足不了要求,可以使用字符串参数 >字符串参数 框架将不做解析,直接交给PDO处理 >在书写字符串参数时应尽量遵循SQL的书写规范 ## 基本操作 $where['id'] = 10; // where `id`=10; 等于 $where['id >'] = 10; // where `id`>10; 大于 $where['id <'] = 10; //where `id`<10; 小于 $where['id >='] = 10; //where `id`>=10; 大于等于 $where['id <='] = 10; //where `id`<=10; 小于等于 $where['id <>'] = 10; //where `id`<>10; 不等于 **IN 和 NOT IN** $where['id'] = [2,4,6,8]; //where `id` IN(2,4,6,8); $where['id'] = ['IN',[2,4,6,8]]; //同上 指定操作符是'IN' $where['id'] = ['NOT IN',[2,4,6,8]]; //where `id` NOT IN(2,4,6,8) **BETWEEN 和 NOT BETWEEN** $where['id'] = ['BETWEEN',[1,10]] //WHERE `id` BETWEEN 1 AND 10 $where['id'] = ['NOT BETWEEN',[1,10]] //WHERE `id` NOT BETWEEN 1 AND 10 **LIKE** $where['name'] = ['LIKE','tom'] //WHERE `name` LIKE %tom% $where['name'] = '%tom%' //WHERE `name` LIKE %tom% **多个字段对应同一个值的情况:** $where['id|uid'] = 10; //where `id`=10 OR `uid`=10 ## 连接多个条件 **默认使用 AND 连接多个条件** $where['id >'] = 10; $where['pot >'] = 100; //...更多 where `id`>10 AND `pot`>100 AND ...更多 //合并后的条件 **OR** $where['id >'] = 10; $where['pid <'] = ['OR',20]; WHERE `id`>10 OR `pid`<20 //合并后的语句 也可以这么写: $where['OR pid <'] = 20; 也可以写在一个数组里面 $where = ['id >'=>10,'OR pid <'=>20]; >[danger]where条件可以多次调用以应对稍微复杂一点的条件 $m = D('user'); $where1 = ['id >'=>10,'OR pot >'=>100]; $where2 = ['OR pid <'=> 20]; $user = $m->where($where1)->where($where2)->select(); //两次调用where()函数合并之后的 where 条件: WHERE (`id `>10 OR `pot `>100) OR (`pid`<20) ## 使用字符串参数 **框架不做解析,也不绑定参数,需注意语句安全** $where = "`id`>10 AND `pot`>100"; **绑定参数的方式:** $m = D('user'); $where = "`id`>:id AND `pot`>:pot"; //将参数绑定到 :id 和 :pot 上 $arr = [':id'=>10,':pot'=>100]; //给绑定参数赋值 $user = $m->where($where,$arr)->select(); //$arr作为第二个参数传入where函数