select * from do_table_49 where id in (select fd530 from do_table_47 where id=2154);
select * from do_table_49 where id in (3624,3626,3633);
请教 为何第一个sql就查出来一条数据,而第二条查出来三条呢 fd530的内容就是第二条sql里的in后面的内容 在线等答案
查询出来的fd530是一个字段 字段的值就是一串字符串3624,3626,3633
追答这个呢,你知道find_in_set,就是搜索set类型数据的方法,find_in_set(‘b’,'a,b,c');
虽然fd530字段不是set类型,但都是用逗号连接的一串字符,功能上也可以实现
select * from do_table_49 where find_in_set(`id`, (select fd530 from do_table_47 where id=2154));
但个人建议最好改一下数据结构,可以单建一个联系表用来关联do_table_47和do_table_49的id字段映射关系
是啊,不知道怎么解决
查出来的就是(3624,3626,3633)
追答select * from do_table_49 as d9 left join do_table_47 as d7 on d7.fd530=d9.id where d7.id=2145;试试这个看看
追问fd530里有多个值(是一个字符串)3624,3626,3633......每一个值都对应49表的一个ID,希望这么说您能明白一点