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

 

posted @ 2020-04-26 11:28  沧海一滴  阅读(2014)  评论(0编辑  收藏  举报