3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超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貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個贊
在 orm 中GORM
,我們這樣做
if con1 { db.Where("con1 =?", con1Flag) }
如果是你自己寫的orm,我建議改成gorm?;蛘吣憧梢詤⒖寄阏谑褂玫膐rm,是否和上面的代碼有相同的用法。如果您自己編寫代碼,請隨心所欲。如果你在團(tuán)隊(duì)中工作,我想使用成熟的 orm 會更好

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個贊
在 PostgreSQL 中
查詢(字符串 sql,參數(shù)...)
在這里,當(dāng)我以 Query(string,values) 的形式將值傳遞給 Query 時,它拋出一個錯誤,只添加了一個值,預(yù)期應(yīng)該是 2,接口數(shù)組應(yīng)該如何作為參數(shù)傳遞給 Query
我找到了答案:您需要將其作為 Query(string, values...)
- 3 回答
- 0 關(guān)注
- 374 瀏覽
添加回答
舉報(bào)