2011-09-03 152 views
0

可能重複:
Searching a column containing CSV data in a MySQL table for existence of input values
MySQL query finding values in a comma separated string從逗號選擇值分隔字符串

我有兩個表。一個表格包含標籤,另一個表格包含以逗號分隔的字符串包含標籤的帖子。我需要使用特定的標記ID來獲取所有帖子。

我試過,但沒有奏效:

SELECT 
ab_tags.id, 
ab_tags.lang, 
ab_tags.tag, 
ab_tags.slug, 
ab_etkinlik.title, 
ab_etkinlik.tag 
FROM 
ab_tags , 
ab_etkinlik 
WHERE 
ab_tags.id = 2 
ab_tags.id IN (ab_etkinlik.tag) 

ab_tags.id從$_get val
ab_etkinlik.tag未來是像 「2,4,8,20,48」

字符串

在此先感謝。

+4

不要在關係數據庫中存儲逗號分隔值。 –

+0

它以什麼方式不起作用?請描述觀察到的行爲,包括您得到的任何錯誤消息。此外,您正在使用哪種RDBMS? MySQL是PHP的常用選擇,但它可以幫助我們確定地知道。 – APC

回答

1

試試這個:

SELECT ab_tags.id, 
     ab_tags.lang, 
     ab_tags.tag, 
     ab_tags.slug, 
     ab_etkinlik.title, 
     ab_etkinlik.tag 
FROM ab_etkinlik 
    JOIN ab_tags ON ab_tags.tag IN(ab_etkinlik.tag) 
WHERE ab_tags.id = 2 
2

如果你設計的這個模式你自己,你錯過了一個鏈接表的概念。如果您有名爲「標籤」和「事件」(etkinlik)的表格,則應該爲每個事件設置一個包含零到多行的雙列「事件標籤」鏈接表。第一列是事件ID,第二列標籤ID。