我有两个表A和B。A的主键是id。B中有一个名为id的列,它是varchar类型。id的值是一个用逗号分隔的字符串,如“1,2,3”。
那么如何选择A中的行who's id is in the ids of B?
例如,这两个表的内容是:

    A
id  name
1    jack
2    rose

    B
id     ids
1       1,2
2       1

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

最佳答案

您可以使用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

关于mysql - 如何选择键在另一个表的列中的行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19247594/

10-09 01:28
查看更多