从逗号分隔的字符串中选择值

时间:2011-09-03 10:13:44

标签: php sql

  

可能重复:
  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”

的字符串

提前感谢。

2 个答案:

答案 0 :(得分:2)

如果您自己设计了这个模式,那么您就错过了链接表的概念。如果你有名为'tags'和'events'(etkinlik)的表,你应该有一个两列'eventtags'链表,每个事件都有0到多行。第一列是事件ID,第二列标记ID。

答案 1 :(得分: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