gpt4 book ai didi

postgresql - 如何使用 go 在 PostgreSQL 中传递条件参数?

转载 作者:IT王子 更新时间:2023-10-29 02:09:34 25 4
gpt4 key购买 nike

我无法根据某些条件将参数传递给 Exec 函数。我用谷歌搜索了这个,但找到了 MySQL 的解决方案,使用 args := []interface{}{var1, var2, ... varN}

但是下面的 PostgreSQL 问题是我的条件查询:

strQry := `UPDATE core_channel SET title = $1, description = $2, `

if updateChannelReq.FeaturedVideo != 0 {
strQry += `default_video_id = $3, `
}

strQry += ` original_keywords = $4, banner_link = $5 WHERE create_user_id = $6`

这里我是如何传递参数来执行这个查询的:

args := []interface{}{
updateChannelReq.Title,
updateChannelReq.Description,
}

if updateChannelReq.FeaturedVideo != 0 {
args = append(args, updateChannelReq.FeaturedVideo)
}

args = []interface{}{
updateChannelReq.OriginalKeyWords,
updateChannelReq.BannerLink,
AuthUserID,
}

_, err = stmt.Exec(args...)

但是我得到了错误:

pq: could not determine data type of parameter $3

请帮我看看如何管理这些东西。谢谢。

最佳答案

在创建查询字符串时使用else 条件更改条件以跳过第三列。

strQry := `UPDATE core_channel SET title = $1, description = $2, `

if updateChannelReq.FeaturedVideo != 0 {
strQry += `default_video_id = $3, original_keywords = $4, banner_link = $5 WHERE create_user_id = $6 `
} else {
strQry += ` original_keywords = $3, banner_link = $4 WHERE create_user_id = $5`
}

关于postgresql - 如何使用 go 在 PostgreSQL 中传递条件参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51263897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com