mysql中in 做条件匹配 带逗号的字符串 数据异常解决

在数据库中表doctor中cancer字段存放着以逗号分隔的外键id
select cancer from doctor where id=1;

数据如下
cancer
1,2,3

我需要在表cancer_type中匹配刚刚的外键,
于是用FIND_IN_SET函数:
select * from cancer_type c where FIND_IN_SET(c.cancer_id, (select cancer from doctor where id=1) )

数据如下
cancer_id cancer_name cancer_prefix
1 肺癌 Lung
2 结直肠癌 Col
3 胃癌 Sto


用in来匹配却不行
select * from cancer_type where cancer_id in (select cancer from doctor where id=1)

数据如下:
cancer_id cancer_name cancer_prefix
1 肺癌 Lung

你可能感兴趣的:(mysql,find_in_set)