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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM