MySql选择值为逗号分隔列的行

时间:2011-03-05 20:31:20

标签: mysql

我正在尝试做这样的事情:

SELECT * FROM table WHERE column IN (1,2,3)

但代替1,2,3我想使用另一个包含逗号分隔列表的表中的列,就像上面的“1,2,3”一样。

我试过这样做:

SELECT 
  GROUP_CONCAT(a.eating_area SEPARATOR ', ') 
FROM table_areas a 
WHERE a.eating_area_id IN (
  SELECT
    o.eating_area_ids 
  FROM table_offers o WHERE o.rid=1
)

然而,这仅返回与1相关联的值,而不是2或3.这可以完成还是有其他方法可以做到这一点?

非常感谢

1 个答案:

答案 0 :(得分:1)

SELECT * FROM table t 
WHERE IF(FIND_IN_SET(column,(SELECT "1,2,3" FROM otherTable WHERE 1))>=1,1,0) 
-- FIND_IN_SET will return the position. 

我不知道这是否是最佳方式,但......我认为它可行。 资料来源:Find_in_set