3 回答
TA贡献1829条经验 获得超7个赞
最终得到的解决方案
控制器
func Find(c echo.Context) (err error) {
model := &models.Query{}
if err = c.Bind(model); err != nil {
return c.JSON(http.StatusInternalServerError, u.Message(false, "Bad request"))
}
resp := model.Find()
return c.JSON(http.StatusOK, resp)
模型
type Query map[string]interface{}
func (model Query) Find() (Query) {
var values []interface{}
var where []string
for k, v := range model {
values = append(values, v)
//MySQL Way: where = append(where, fmt.Sprintf("%s = ?", k))
where = append(where, fmt.Sprintf(`"%s" = %s`,k, "$" + strconv.Itoa(len(values))))
}
string := ("SELECT name FROM users WHERE " + strings.Join(where, " AND "))
//for testing purposes i didn't ran actual query, just print it in the console and returned JSON back
fmt.Println(string)
return model
}
TA贡献1797条经验 获得超6个赞
在 orm 中GORM
,我们这样做
if con1 { db.Where("con1 =?", con1Flag) }
如果是你自己写的orm,我建议改成gorm。或者你可以参考你正在使用的orm,是否和上面的代码有相同的用法。如果您自己编写代码,请随心所欲。如果你在团队中工作,我想使用成熟的 orm 会更好
TA贡献1829条经验 获得超6个赞
在 PostgreSQL 中
查询(字符串 sql,参数...)
在这里,当我以 Query(string,values) 的形式将值传递给 Query 时,它抛出一个错误,只添加了一个值,预期应该是 2,接口数组应该如何作为参数传递给 Query
我找到了答案:您需要将其作为 Query(string, values...)
- 3 回答
- 0 关注
- 300 浏览
添加回答
举报