首页 > 解决方案 > 在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
        }
    }
}

标签: sqlpostgresqlgo

解决方案


您可以将数组作为参数传递给 Postgres 查询。然后它是一个简单的unnest()and update

update t
    set val = u.val
    from unnest(:ar_names, :ar_vals) u(name, val)
    where t.name = u.name;

推荐阅读