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查询

----------  招募未来大神 -----------------------

如果您有利他之心,乐于帮助他人,乐于分享

如果您遇到php问题,百度且问了其他群之后仍没得到解答

欢迎加入,PHP技术问答群,QQ群:292626152

教学相长!帮助他人,自己也会得到提升!

为了珍惜每个人的宝贵时间,请大家不要闲聊!

愿我们互相帮助,共同进步!