我有一个 uuid 字符串列表,我想用它来过滤查询。如果我像这样循环遍历列表中的元素,我可以使查询工作:
for i, fileUID := range fileUIDs {
db.Exec("DELETE FROM files WHERE uid = $1::uuid", fileUID)
}
但我想使用列表让它工作:
db.Exec("DELETE FROM files WHERE uid IN $1::uuid[]", fileUIDs)
这可能吗?我似乎无法让它工作。
我尝试了如何使用 Golang 在 SQL 中执行 IN 查找中的解决方案?但我pq: syntax error at or near ","在使用普通?或pq: syntax error at or near "::"使用?:uuid. 我使用了以下内容:
fileUIDArgs := make([]interface{}, len(fileUIDs))
for i, fileUID := range fileUIDs {
fileUIDArgs[i] = interface{}(fileUID)
}
//also tried using "?::uuid"
myPsql := "DELETE FROM files WHERE uid IN (" + "?" + strings.Repeat(",?", len(uidStrings)-1) + ")"
db.Exec(myPsql, fileUIDArgs...)
红颜莎娜
慕村9548890
相关分类