我知道[]string我可以使用字符串数组,strings.Join(a []string, ',')但我想对整数数组做同样的事情[]int。
我的用例是这样的查询 where variantsis[]map[string]int
var Ids []int
sqlStr := "select id from mapping where my_id in ("
for _, mp := range variants {
sqlStr += "?,"
Ids = append(Ids, mp["id"])
}
sqlStr = strings.TrimRight(sqlStr, ",")
rows, err := db.Query(sqlStr+")", strings.Join(Ids, ',')) // I can't do this because Join needs String array
Run Code Online (Sandbox Code Playgroud)
如何实现这一目标?
做IDs一个[]string,当你添加它们转换整数
var IDs []string
for _, i := range []int{1, 2, 3, 4} {
IDs = append(IDs, strconv.Itoa(i))
}
fmt.Println(strings.Join(IDs, ", "))
Run Code Online (Sandbox Code Playgroud)
https://play.golang.org/p/xrfuMRjgiI
我更愿意使用json.Marshal. 它非常简单易用。
data := []int{100, 200, 300}
s, _ := json.Marshal(data)
fmt.Println(strings.Trim(string(s), "[]"))
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助你。如有疑问,请随时提问。网站链接