sql - 在postgresql中更改多行
问题描述
我需要使用 2 个数组更改我的数据库中的行,首先存储我需要更改的行的名称,然后存储 val。我添加了代码,以了解我想要做什么。我可以向我的数据库发出 1 个请求吗
func update_1(){
key := []string{"Name1", "Name2", "Name4"}
val := []string{"1", "2", "4"}
for i, _ := range key{
_, err := db.Exec("UPDATE table SET val = $1 WHERE name = $2",val[i], key[i])
if err != nil {
errorLog.Println(err)
return
}
}
}
解决方案
您可以将数组作为参数传递给 Postgres 查询。然后它是一个简单的unnest()
and update
:
update t
set val = u.val
from unnest(:ar_names, :ar_vals) u(name, val)
where t.name = u.name;
推荐阅读
- r - 我想将前向星表示转换为关联矩阵
- arm - 在没有 MUL 指令的情况下将常数与 ARM 中寄存器的值相乘
- asp.net-web-api - Check if API controller method has authorize attribute
- r - 使用 tidyverse (dplyr) 对混合数字/非数字 DataFrame 中的列进行规范化?
- time - 我如何比较没有小时的时间?
- c++ - 当所有变量都是相同类型时,为什么会有类型转换?
- xamarin - 在简单的 Xamarin Forms 项目中,后台作业无法使用 Shiny 库
- javascript - 替换数组中特定字段的逗号?
- arrays - React Native Props 不保存到新数组中
- django - 使用具体化生成 django 表单时出错