我有两个表A和B。A的主键是id。B中有一个叫ids的列,它是varchar类型。ids的值是一个用逗号分隔的字符串,比如'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 中执行此操作?
我有两个表A和B。A的主键是id。B中有一个叫ids的列,它是varchar类型。ids的值是一个用逗号分隔的字符串,比如'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 中执行此操作?
您可以使用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