使用 gorm 和 GORM LOG sql:预期 0 个参数,得到 1 个
use gorm and GORM LOG sql: expected 0 arguments, got 1
GORM 日志sql:预期 0 个参数,得到 1 个
我的密码是
func GetPipelineConfigKey(riskConfigKey string) string{
var PipelineConfigKey string
sql := fmt.Sprintf("SELECT context_name FROM hawk_context_name WHERE id = (SELECT service_line_id FROM risk_predict_config_key WHERE config_key = '%s');", riskConfigKey)
contextDb.Exec(sql, &PipelineConfigKey)
return PipelineConfigKey
}
Exec
具有以下签名
func (s *DB) Exec(sql string, values ...interface{}) *DB {
values 在这里是一个可变参数,对于您传递给 Exec 的每个变量,在您的 sql 查询中应该有一个 ?
。您传递了 1 个参数,但查询不期望任何参数(无 ?
)。这就是为什么您会收到以下错误。
sql: expected 0 arguments, got 1
也许您想将结果保存在 PipelineConfigKey
中。为此使用这种方式
创建结果结构
type Result struct {
Name string
}
和扫描结果
db.Raw(sql).Scan(&result)
完整代码:
type Result struct {
Name string
}
func GetPipelineConfigKey(riskConfigKey string) string{
sql := fmt.Sprintf("SELECT context_name FROM hawk_context_name WHERE id = (SELECT service_line_id FROM risk_predict_config_key WHERE config_key = '%s');", riskConfigKey)
db.Raw(sql).Scan(&result)
return result.Name
}
GORM 日志sql:预期 0 个参数,得到 1 个
我的密码是
func GetPipelineConfigKey(riskConfigKey string) string{
var PipelineConfigKey string
sql := fmt.Sprintf("SELECT context_name FROM hawk_context_name WHERE id = (SELECT service_line_id FROM risk_predict_config_key WHERE config_key = '%s');", riskConfigKey)
contextDb.Exec(sql, &PipelineConfigKey)
return PipelineConfigKey
}
Exec
具有以下签名
func (s *DB) Exec(sql string, values ...interface{}) *DB {
values 在这里是一个可变参数,对于您传递给 Exec 的每个变量,在您的 sql 查询中应该有一个 ?
。您传递了 1 个参数,但查询不期望任何参数(无 ?
)。这就是为什么您会收到以下错误。
sql: expected 0 arguments, got 1
也许您想将结果保存在 PipelineConfigKey
中。为此使用这种方式
创建结果结构
type Result struct {
Name string
}
和扫描结果
db.Raw(sql).Scan(&result)
完整代码:
type Result struct {
Name string
}
func GetPipelineConfigKey(riskConfigKey string) string{
sql := fmt.Sprintf("SELECT context_name FROM hawk_context_name WHERE id = (SELECT service_line_id FROM risk_predict_config_key WHERE config_key = '%s');", riskConfigKey)
db.Raw(sql).Scan(&result)
return result.Name
}