我有一张newsPosts
表,其中我在该表中有一列tags
。
tags列包含comma(,)
这样的分隔标记。
tag1,tag2,tag3
在另一个表格中,我列出了标签栏下的所有标签 像这样:
代码
tag1
tag2
tag3
tag4
.
.
.
.
我想查找新闻发布表中标有say tag2的帖子数量。
我该怎么做?我正在使用mysql 5.0
编辑::
我想做的是:::找到用于标记newsPost的最多次的标签。
像这样: tag1 x 100 times
tag2 x 1000times
.
.
tagN x 500 times
tag2应该位于结果的顶部。
答案 0 :(得分:2)
答案 1 :(得分:1)
这应该有效:
SELECT * FROM newPosts WHERE tags LIKE "%tag2%";
答案 2 :(得分:1)
它适用于tags table
的所有代码:
SELECT tag, (SELECT COUNT(1)
FROM tag_newPosts t2
WHERE t2.tag LIKE CONCAT('%',t1.tag,'%')) AS tag_count
FROM tags t1;
答案 3 :(得分:1)
您可以使用正则表达式进行查询:
select *
from newsPosts
where tags regexp '(^|,)tag2(,|$)'
此表达式可防止其他标记中包含的标记进入查询结果。例如,它会选择tag2
但不包含mytag22
的项目。