最近小鱼哥要做个标签模糊查询的需求。

比如标签值:

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中去了。

标签: thinkphp, thinkphp like, thinkphp 多值查询, thinkphp 组合查询