phpwhere字段in数组,TP5where数组查询(有多个查询条件)

phpwhere字段in数组,TP5where数组查询(有多个查询条件)有查询条件就查询,
多个查询条件,只要有查询,就增加⼀个查询条件
//类型
旧唐书李白传
if($sotype){
$where['type'] = $sotype;
}
//合作单位
if($companyid){
$where['hezuodanwei'] = $companyid;
}
//关键词 模糊查询 $type 是变量
if($key){
$where[$type] = ['like',"%".$key."%"];
}
$rs=Db::name('student')->where($where)->order('id desc')->limit($limit)->page($page)->select();
$rs1=Db::name('student')->where($where)->select();
$where['type'] = $sotype;
$where['hezuodanwei'] = $companyid;
$where["username"] = ['like',"%".$tag["kw"]."%"];//模糊查询
$where[]=['exp','FIND_IN_SET(2,needID)'];
例⼦:id in(1,5,8)
$where['hezuodanwei'] =array('in','10,12');
组成查询数组$where
where($where)
Where 条件表达式格式为:
$map['字段名'] = array('表达式', '操作条件');
其中 $map 是⼀个普通的数组变量,可以根据⾃⼰需求⽽命名。上述格式中的表达式实际是运算符的意义:
ThinkPHP运算符 与 SQL运算符 对照表
TP运算符
SQL运算符
例⼦
实际查询条件
eq
=
$map['id'] = array('eq',100);
等效于:$map['id'] = 100;
neq
!=
$map['id'] = array('neq',100);
id != 100
gt
>
$map['id'] = array('gt',100);
id > 100
egt
>=
$map['id'] = array('egt',100);
id >= 100
lt
<
$map['id'] = array('lt',100);
id < 100
elt
钢铁冶金设备维护
<=
$map['id'] = array('elt',100);
id <= 100
like
like
$map = array('like','Admin%'); username like 'Admin%'
between
between and
$map['id'] = array('between','1,8');
id BETWEEN 1 AND 8
not between
not between and
$map['id'] = array('not between','1,8');
id NOT BETWEEN 1 AND 8
in
in
$map['id'] = array('in','1,5,8');
id in(1,5,8)
not in
not in
$map['id'] = array('not in','1,5,8');
id not in(1,5,8)
and(默认)
and
$map['id'] = array(array('gt',1),array('lt',10));
(id > 1) AND (id < 10)
or
or
$map['id'] = array(array('gt',3),array('lt',10), 'or');
(id > 3) OR (id < 10)
xor(异或)
xor
两个输⼊中只有⼀个是true时,结果为true,否则为false,例⼦略。
1 xor 1 = 0
exp
综合表达式
$map['id'] = array('exp','in(1,3,8)');
$map['id'] = array('in','1,3,8');
补充说明
同 SQL ⼀样,ThinkPHP运算符不区分⼤⼩写,eq 与 EQ ⼀样。
between、 in 条件⽀持字符串或者数组,即下⾯两种写法是等效的: $map['id'] = array('not in','1,5,8');
$map['id'] = array('not in',array('1','5','8'));
exp 表达式
上表中的 exp 不是⼀个运算符,⽽是⼀个综合表达式以⽀持更复杂的条件设置。exp 的操作条件不会被当成字符串,可以使⽤任何 SQL ⽀持的语法,包括使⽤函数和字段名称。
exp 不仅⽤于 where 条件,也可以⽤于数据更新,如:
$Dao = M("Article");
// 构建 save 的数据数组,⽂章点击数+1
$data['id'] = 10;
$data['counter'] = array('exp','counter+1');
// 根据条件保存修改的数据
$User->save($data);科学幻想之父
查询表达式
版本
新增功能
5.0.9
⽐较运算增加闭包⼦查询⽀持
5.0.4
铝箔⽀持对同⼀个字段多次调⽤查询⽅法
查询表达式⽀持⼤部分的SQL查询语法,也是ThinkPHP查询语⾔的精髓,查询表达式的使⽤格式:where('字段名','表达式','查询条件');
whereOr('字段名','表达式','查询条件');
表达式不分⼤⼩写,⽀持的查询表达式有下⾯⼏种,分别表⽰的含义是:
表达式
含义
EQ、=
等于(=)
NEQ、<>
不等于(<>)
GT、>
⼤于(>)
EGT、>=
⼤于等于(>=)
LT、<
⼩于(
ELT、<=
⼩于等于(<=)
LIKE
模糊查询
[NOT] BETWEEN
(不在)区间查询
[NOT] IN
(不在)IN 查询
[NOT] NULL
查询字段是否(不)是NULL [NOT] EXISTS
EXISTS查询
EXP
表达式查询,⽀持SQL语法
> time
时间⽐较
< time
影片未分级时间⽐较
between time胶体金法
时间⽐较
notbetween time
时间⽐较
表达式查询的⽤法⽰例如下:EQ :等于(=)
例如:
where('id','eq',100);
where('id','=',100);
和下⾯的查询等效
where('id',100);
表⽰的查询条件就是 id = 100 NEQ: 不等于(<>)
例如:
where('id','neq',100);
where('id','<>',100);
表⽰的查询条件就是 id <> 100 GT:⼤于(>)
例如:
where('id','gt',100);
where('id','>',100);
表⽰的查询条件就是 id > 100

本文发布于:2024-09-23 16:27:15,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/153182.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:查询   条件   表达式   数组
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议