sql:SELECT * FROM table WHERE name like ‘%关键字1%‘ OR name like ‘%关键字2%‘ OR name like ‘%关键字3%‘
where在Thinkphp 对应的写法是怎样的?
手册:
表达式 含义
EQ 等于(=)
NEQ 不等于(<>)
GT 大于(>)
EGT 大于等于(>=)
LT 小于(<)
ELT 小于等于(<=)
LIKE 模糊查询
[NOT] BETWEEN (不在)区间查询
[NOT] IN (不在)IN 查询
EXP 表达式查询,支持SQL语法
$map[‘字段名‘] = array(‘表达式‘,‘查询条件‘);
$map写法:
$map[‘a‘] =array(‘like‘,array(‘%thinkphp%‘,‘%tp‘),‘OR‘);
$map[‘b‘] =array(‘notlike‘,array(‘%thinkphp%‘,‘%tp‘),‘AND‘);
所以上例为:
$map[‘name‘]=array(‘like‘,array(‘%关键字1%‘,‘%关键字2,‘关键字3‘),‘OR‘);
$list = Db(‘table‘)->where($map)->select();
我试了下,不行。会不会是tp3.2的呢?
而下面这种写法就可以。
$list = Db::name(‘User‘)->where(‘username‘,[‘like‘,‘%关键字1%‘],[‘like‘,‘关键字2‘],‘or‘)->select();
你也可以看看下面这篇:
THINKPHP实现查询两个WHERE条件数组间OR查询
https://yq.aliyun.com/ziliao/29407
---------- 招募未来大神 -----------------------
如果您有利他之心,乐于帮助他人,乐于分享
如果您遇到php问题,百度且问了其他群之后仍没得到解答
欢迎加入,PHP技术问答群,QQ群:292626152
教学相长!帮助他人,自己也会得到提升!
为了珍惜每个人的宝贵时间,请大家不要闲聊!
愿我们互相帮助,共同进步!