您的位置:首页 > 房产 > 建筑 > 郑州富士康2022年招聘_食品网站建设策划书_b2b电子商务网_产品推广计划方案模板

郑州富士康2022年招聘_食品网站建设策划书_b2b电子商务网_产品推广计划方案模板

2025/1/12 23:19:10 来源:https://blog.csdn.net/tekin_cn/article/details/143379588  浏览:    关键词:郑州富士康2022年招聘_食品网站建设策划书_b2b电子商务网_产品推广计划方案模板
郑州富士康2022年招聘_食品网站建设策划书_b2b电子商务网_产品推广计划方案模板

tp8模型中的where查询条件为数组且使用大于,小于,like等条件时的使用方式和之前的tp5/6等版本的使用区别如下:

thinkphp8 中的where数组查询条件

大于 >, 小于, like等条件时使用方法:

// 查询user表中id大于2, name以张开头的用户
$user = User::where([['id', '>','2'],['name','like','%'.'张']])->select();// 最后生成的sql如:
// SELECT * FROM `tms_user` WHERE ( `id` > 2 AND `real_name` LIKE '%张' ) AND `tms_user`.`delete_time` IS NULL

注意这里的where数组条件里面有多个时使用的是二维数组的形式,既 [ [条件1], [条件2] ],

当条件是等于=时,如果是多个,使用  [ ['id', '=','2'] ],  如果只有一个条件/或者条件是等于 则可以只用索引数组, 如: ['id'=>'2', 'real_name'=>'张三' ],  对于这种情况下的where就和tp5,6是一样的了。如下示例:

User::where(['id'=>'2','real_name'=>'张三'])->select();
// SELECT * FROM `tms_user` WHERE ( `id` = 2 AND `real_name` = '张三' ) AND `tms_user`.`delete_time` IS NULL

注意:在thinkphp8中,索引数组的where条件会生成IN的查询条件, 如:where( ['id'=>[1,2,3]] )  最后生成的SQL是  `id` IN (1,2,3) 

thinkphp5/6的where数组条件中大于,小于,like的使用

注意这里的大于,小于,like条件是对某个字段使用条件数组

// 查询user表中id大于2, name以张开头的用户
$user = User::where(['id'=>array('>','2'),'name'=>array('like','%'.'张')])->select();

tp5中的in, not in等查询条件的构建

$whereArr['id'] = array('eq',100);  //  等效于:$map['id'] = 100;
$whereArr['id'] = array('neq',100);  //  id != 100
$whereArr['id'] = array('gt',100); //   id > 100
$whereArr['id'] = array('egt',100); //   id >= 100
$whereArr['id'] = array('lt',100);  //  id < 100
 $whereArr['id'] = array('elt',100); //   id <= 100

$whereArr['id'] = array('in','1,5,8');  //  id in(1,5,8)
$whereArr['id'] = array('not in','1,5,8');   //   id not in(1,5,8)

$whereArr['id'] = array(array('gt',3),array('lt',10), 'or'); //   (id > 3) OR (id < 10)

$whereArr['id'] = array('between','1,8');   // id BETWEEN 1 AND 8

exp    综合表达式 $whereArr['id'] = array('exp','in(1,3,8)');

示例: $res = db('user')->filed(*)->where($whereArr)->select();

where字符串条件和其他情况

字符串条件和其他情况tp8, tp5,6他们的where的构造方式是一样的,如下示例:

where('email', 'like', '%abc%') // email like '%abc%'

where('real_name', '张三')  // real_name='张三'

where('id', 1)  // id=1

只有一个条件时大于,小于,like等的使用tp8,6,5,3他们的使用方法都是一样的,如

where('id','>',10)   // 生成的SQL:    id > 10
 

总结:tp8中的模型where数组条件在大于,小于,like或者有多个条件时使用的是二维数组的方式,而tp5、6中使用的是索引数组+条件数组的形式, 其他的字符串条件和单个条件时的where使用各个版本都是一样的。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com