最近工作遇到一个小问题,即如何使用原生的sql查询where in语句,因为之前使用gorm习惯了,gorm已经封装好了,突然写原生的反而有点不熟悉,同时还要考虑到性能和代码是否繁琐,所以写这个笔记记录一下当时的几种解决方法...table where id in (1, 2, 3, 4, 5, 6, 7);
于是我想当然的也在代码这样写:
idSlice := []int{1, 2, 3, 4, 5, 6, 7}
query...:= fmt.Sprintf("select * from table where id in (?)"...,这在gorm可以是因为已经封装好了,所以经过多次试错和思考之后,反应过来,其实in的范围要写成字符串的形式,毕竟是把整条sql当成原生的查询语句,所以不能出现变量之类的东西,
idSlice为数组类型...table where id in ('%s')", ss)
//组合之后:('1','2','3','4','5','6','7')
result, err := db.Query(query)
这种方法的问题在于使用了