Mysql sql查询以计数标记的帖子
我有一个Mysql sql查询以计数标记的帖子,mysql,sql,database,Mysql,Sql,Database,我有一个新闻帖子表,其中有一列标签。 “标记”列包含像这样的分隔标记 tag1,tag2,tag3 在另一个表中,我在标记列下列出了所有标记 像这样: 标记 tag1 tag2 tag3 tag4 . . . . 我想从NewsPost表中找到用SayTag2标记的帖子数量 我该怎么做?我正在使用mysql 5.0 编辑:: 我想做的是:::查找用于标记新闻帖子的次数最多的标记 像这样: tag1 x 100 times tag2 x 1000times
新闻帖子
表,其中有一列标签
。
“标记”列包含像这样的分隔标记
tag1,tag2,tag3
在另一个表中,我在标记列下列出了所有标记
像这样:
标记
tag1
tag2
tag3
tag4
.
.
.
.
我想从NewsPost表中找到用SayTag2标记的帖子数量
我该怎么做?我正在使用mysql 5.0
编辑::
我想做的是:::查找用于标记新闻帖子的次数最多的标记
像这样:
tag1 x 100 times
tag2 x 1000times
.
.
tagN x 500 times
tag2应该出现在结果的顶部。这应该有效:
SELECT * FROM newPosts WHERE tags LIKE "%tag2%";
就说
SELECT * FROM newsPosts WHERE tags LIKE '%tag2%'
它应该适用于
标记表
中的所有标记:
SELECT tag, (SELECT COUNT(1)
FROM tag_newPosts t2
WHERE t2.tag LIKE CONCAT('%',t1.tag,'%')) AS tag_count
FROM tags t1;
您可以使用正则表达式进行查询:
select *
from newsPosts
where tags regexp '(^|,)tag2(,|$)'
此表达式防止包含在其他标记中的标记进入查询结果。例如,它将选择带有
tag2
的项目,但不带有mytag22
我没有要插入此查询中的标记名(tag2)。。我想我必须加入表格???@JAVAGeek。那么你应该问另一个问题。这个问题已经得到了回答。