[英]sql query to count tagged posts
我有一張newsPosts
表,在該表中有一個列tags
。 標簽列包含像這樣的comma(,)
分隔的標簽。
tag1,tag2,tag3
在另一個表中,我在標簽列下列出了所有標簽,如下所示:
標簽
tag1
tag2
tag3
tag4
.
.
.
.
我想從新聞發布表中找到標有tag2的帖子數。
我怎樣才能做到這一點 ? 我正在使用mysql 5.0
編輯::
我想做的是:::查找使用次數最多的新聞標簽。
像這樣 :
tag1 x 100 times
tag2 x 1000times
.
.
tagN x 500 times
tag2應該位於結果的頂部。
這應該工作:
SELECT * FROM newPosts WHERE tags LIKE "%tag2%";
它應該適用於tags table
所有標簽:
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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.