MySQL字段存储逗号分隔的id做查询条件

之前一直使用SQLserver数据库,这次在MySQL数据库中查询时发现数据有误,查询语句如下:
select * from tb_fee_type where fee_type_id in (select fee_type_ids from tb_fee_setting_check where fee_setting_id=2)
其中fee_type_ids字段值为12,9,8,6,5,4,3,2,1,7,11,10,在SQLserver中查询数据正确,在MySQL中执行只查询到fee_type_id=12的数据。
执行以下SQL时结果却是正确的:
select * from tb_fee_type where fee_type_id in (12,9,8,6,5,4,3,2,1,7,11,10)
开始在网上查找,结果总结如下:
在MySQL中使用in(list),如果list是常量可正常执行,如果list是变量则不可以。
上述需求在查询时可使用find_in_set(),查询示例如下:
select * from tb_fee_type where FIND_IN_SET(fee_type_id,(select fee_type_ids from tb_fee_setting_check where fee_setting_id=2))
亲测有效,特做此记录。

你可能感兴趣的:(MySQL字段存储逗号分隔的id做查询条件)