我正在寫博客。現在我想顯示作者最常用的標籤。標籤被存儲在文章表,一列稱爲標籤,KOMMA分隔:最常用的標籤 - mysql
文章表(ID | AUTHORID |標籤):
1 | 1 |足球,運動
2 | 1 |運動,網球,受傷
3 | 1 |運動,高爾夫,傷
所以我想顯示作者與ID 1並顯示他最常用的3個標籤(從文章表中顯示上面)。在這種情況下,這將是:運動,受傷,足球。
這是可能的在MySql?
我正在寫博客。現在我想顯示作者最常用的標籤。標籤被存儲在文章表,一列稱爲標籤,KOMMA分隔:最常用的標籤 - mysql
文章表(ID | AUTHORID |標籤):
1 | 1 |足球,運動
2 | 1 |運動,網球,受傷
3 | 1 |運動,高爾夫,傷
所以我想顯示作者與ID 1並顯示他最常用的3個標籤(從文章表中顯示上面)。在這種情況下,這將是:運動,受傷,足球。
這是可能的在MySql?
是可能的,但更好的答案是將您引導到更多的「Normal」數據庫結構。
你真的需要一個數據庫設置,如:中article_tags
包含標籤的ID和它給物品的tags
articles
,表,表中。
然後,您可以通過查看article_tags
並返回所有tag_id
的其中article_id = ('X')
來查詢每篇文章('X')的標籤。
謝謝!我會試着去建立它。更有意義。 – Bert 2011-03-30 15:09:22
沒問題 - 通常在查看這些類型的問題時,如果不容易實現,那麼數據模型有問題。 – diagonalbatman 2011-03-30 15:26:04
你應該看看database normalization - 維基百科文章是非常先進的,但它會給你術語,您可以搜索以找到更多有關該主題的文章。
的基本想法是,你將有另一個表:
table name: tags
columns: id | name
然後一個表來加入他們的行列:
table name: article_tags
columns: article_id | tag_id
,那麼你就join所有數據一起在一個查詢爲了顯示每篇文章的標籤名稱。然後,可以在表上進行更高級的查詢,以找出諸如最常用的逐個標籤以及作者最常用的標籤等內容。
謝謝!會試試這個。感謝您的鏈接。 – Bert 2011-03-30 18:27:09
你是否堅持使用非標準化的標籤列,或者你可以創建一個實際的列表文章標籤?用一張標籤表,這將是微不足道的。 – VoteyDisciple 2011-03-30 14:56:19
你應該真的爲你的標籤添加一個表格,並且將一個表格與文章和標籤結合在一起,這將使得在mysql中很容易,現在如果甚至可能會很困難。 – jeroen 2011-03-30 14:56:48
是的,我想。我現在堅持使用這個專欄。那麼這甚至有可能做到? – Bert 2011-03-30 14:59:27