之前每次遇到这个问题,都觉得很恶心,因为直接串一个字符串进去,不做任何处理的话,是会被当成一个值,而不是按照‘,’分割,今天终于找到的方法,第一时间分享给大家,用法如下:
select * from application_relation tar
left join cluster tc on FIND_IN_SET(tc.f_cluster_id , tar.f_cluster_id)
其中 FIND_IN_SET(tc.f_cluster_id , tar.f_cluster_id)是mysql自带的函数,
第一个参数是匹配in的字段,第二个是匹配的值
如:FIND_IN_SET( A.ID , ‘1,2,3,4,5’)
1.select * from 表名 where 字段名 in(这里只能是int类型的数字)想要传多个值,如下
select * from 表名 where FIND_IN_SET( 字段名, ‘1,2,3,4,5’),这样就可以直接传字符串了。
当然,如果值是连续的情况 如:1-3,4-5,6-7我们可以用 and between and 来进行区间查询。