我有两个表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/