我正在尝试做这样的事情:
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.这可以完成还是有其他方法可以做到这一点?
非常感谢
答案 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