如何选择其键位于另一个表的列中的行?

时间:2013-10-08 12:23:45

标签: mysql

我有两个表A和B.A的主键是id。在B中有一个名为id的列,它是一个varchar类型.id的值是一个用逗号分隔的字符串,如'1,2, 3' 。 那么如何选择A中谁的id在B的ID中? 例如,两个表的内容是:

    A
id  name
1    jack
2    rose

    B
id     ids
1       1,2
2       1

如果B.id = 1,我想选择jack和rose。 我应该如何在mysql中执行此操作?

1 个答案:

答案 0 :(得分:2)

您可以使用FIND_IN_SET

FIND_IN_SET(str,strlist)

<强>查询

SELECT
    a.name
FROM
a
INNER JOIN b
    ON (FIND_IN_SET(a.id,b.ids) > 0)

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set