簡體   English   中英

SQL查詢來計數標記的帖子

[英]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 newsPosts WHERE tags LIKE '%tag2%'

sqlfiddle上的演示

這應該工作:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM