下面是文章表,如自己设置的标签id为3,11 ,则匹配出含有3或11的文章列表。
附上代码:
//表示查询到当前用户所设置的标签
List<Map<String, Object>> list = new ArrayList<>();
StringBuilder articleSql = new StringBuilder();
articleSql.append(" select top 2 a.source,"
+ "a.article_id,"
+ "a.article_title,"
+ "a.publish_date,"
+ "a.clicknum,"
+ "case when Datename(year,GetDate())+'-'+Datename(month,GetDate())+'-'+Datename(day,GetDate())= a.publish_date then '0' else '1' END as istoday ");
articleSql.append(" from t_reptile_article a ");
articleSql.append(" where 1=1 ");
Map<String, Object> articleparams = new HashMap<String, Object>();
if (list.size() > 0) {
articleSql.append(" and (");
for (int i=0; i<list.size(); i++) {
Map<String, Object> tagMap = list.get(i);
String tagId = tagMap.get("tag_id").toString();
articleSql.append(" a.labels like '");
articleSql.append(tagId);
articleSql.append(",%' ");
articleSql.append(" or ");
articleSql.append(" a.labels like '%,");
articleSql.append(tagId);
articleSql.append("' ");
articleSql.append(" or ");
articleSql.append(" a.labels like '%,");
articleSql.append(tagId);
articleSql.append(",%' ");
articleSql.append(" or ");
articleSql.append(" a.labels like '");
articleSql.append(tagId);
articleSql.append("' ");
if (i<list.size()-1){
articleSql.append(" or ");
}
}
articleSql.append(") ");
} else {
articleSql.append(" and 1=2 ");
}