Thinkphp like 单字段多个值 or 模糊查询
最近小鱼哥要做个标签模糊查询的需求。
比如标签值:
tags:广州建站,番禺建站,企业建站
我想查询所有新闻Tags字段含有以上任意一个关键词的记录,怎么实现呢?
$tags =array("广州建站","番禺建站");
重组查询条件,因为模糊查询的like 关键词两边要追加“%”;
$map =array();
foreach($tags as $k=>$v){
$map[$k] ="%".$v."%";
}
$where['tags'] =array('like',$diff,'or');
以上得出的sql语句是
示例表为t_news 查询出6个记录 语法如下
**SELECT * FROM `t_news` WHERE (`tags` LIKE '广州建站' OR `tags` LIKE '番禺建站') ORDER BY update_time DESC LIMIT 6**
好了以上的查询就可以应用到thinkphp中去了。