1 回答

TA贡献1856条经验 获得超11个赞
仅使用标准库,您可以将 haystack 参数和 needle 参数收集到一个切片中,然后将其传递给Query方法。
对于 SQL 本身,您可以使用IN运算符并将其右侧操作数生成为?基于干草堆数量的列表。
args := make([]interface{}, len(lookIn)+1) // slice of all args
inRHS := "" // string of ?,... for the IN operator's right hand side
for i := range lookIn {
args[i] = lookIn[i]
inRHS += "?,"
}
args[len(args)-1] = needle // add the last arg
inRHS = inRHS[:len(inRHS)-1] // remove last ","
query := `SELECT needle,tagTitle,Epoch
FROM some_table
WHERE hayStackName IN (` + inRHS + `)
AND tagTitle LIKE ?
ORDER BY tagTitle COLLATE NOCASE ASC`
rows, err := sqliteDbPtr.Query(query, args...)
if err != nil {
// handle error
}
defer rows.Close()
for rows.Next() {
//
}
if err := rows.Err(); err != nil {
//
}
请注意,我已删除子查询并添加了FROM some_table您的问题缺少的子句。
- 1 回答
- 0 关注
- 240 浏览
添加回答
举报