使用find_in_set代替in,设置mysql的in参数

问题,出数据报表时,经常需要设置一个参数,根据该参数执行多个sql,计算整体数据。当这个参数里面是多个时,就没法用IN来进行操作了。看了很多博客,按照sql执行也没成功。最后看到一个find_in_set(str, strlist)的方法,试了下,完美解决;

-- 表person,字段(id,name,age,addr)
SET @ids = '1,2,3,4';
SELECT * FROM person WHERE FIND_IN_SET(id, @ids);

同样字段也可以作为后面的参数

-- 表blog, 字段(id,titile, content, category,tags,create_time,update_time),其中,tags可能是,1:Java,2:Python,3:C++,如果要查所有Java文章
SELECT * FROM blog WHERE FIND_IN_SET(1, tags)

你可能感兴趣的:(技术收获)