簡體   English   中英

按標簽檢索相關帖子

[英]Retrievng related posts by tags

我有一個這樣構造的posts表:

id  |  title  |  content  |  tags

和一個tags

id  |  name  |  description

我以這種方式將我的標簽放在posts表中: 3,2,5,8其中數字是tags表的相應行號。 現在,我可以通過標簽找到我帖子中 select 相關帖子的好方法嗎?

SELECT * FROM posts WHERE tags ? LIMIT 10

我的邏輯很差。

這就是數據庫規范化的用武之地。在單個列中存儲多個標簽 ID 不是一個好主意。 您可能應該創建一個新表post_tags ,其結構為post_id | tag_id post_id | tag_id將多個標簽鏈接到單個帖子。

然后您可以執行以下查詢:

SELECT * FROM posts
INNER JOIN post_tags ON post_tags.post_id = posts.id
WHERE post_tags.tag_id IN(id1,id2,etc.)

你最好改變你的數據庫設計。 為帖子和標簽的關系創建一個新表。

create table post_tags (
  post_id int,
  tag_id int
)

然后你可以使用 join to select 你的數據,比如:

SELECT 
    p.* 
FROM 
    posts p 
LEFT JOIN 
    post_tags pt ON p.id = pt.post_id 
WHERE 
    pt.tag_id IN (?,?,?)
SELECT * FROM posts WHERE tags IN ( YOUR_COMMA_SEPRATED_TAG_IDS );

YOUR_COMMA_SEPRATED_TAG_IDS可以是:- 1 OR 1,2,3 或任何其他...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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