MySQL in查询参数化

背景

如何将MySQL的where ... in ...语句翻译成有参数的查询语句

开始

MySQL

1
select * from temp where id in ('1','2','3','4','5')

解决方案

不带参数
1
select * from temp where FIND_IN_SET(id, '1,2,3,4,5')
带参数
1
select * from temp where FIND_IN_SET(id, #{idSet})

其中,idSet是一个由集合类型转换过来的字符串类型,在Java中,有这么一个简单的方法:

1
String str = StringUtils.join(list, ",");  // 集合转String