如何从地图界面返回所有行

基本上,我想返回查询中特定值的所有行,如下所示


var listOf []map[string]interface{}


query2 = strings.Replace(query2, "listOfIds", fmt.Sprintf("%v", listOf[0]["itemIds"]), -1)


目前上面按预期返回第一行listOf[0]但是我怎样才能返回所有这些,有没有办法做到这一点?


编辑:


为了提供更多上下文,有 2 个查询。查询 1 生成 id,然后在查询 2 中传递这些 id


whereQuery := " WHERE ssItemStoreId = itemIds AND ssItemStoreId = clId" + whereVariables + " AND itemClosedReason != 'Duplicated' AND clId != '' AND ItemArchived = 0"


query1 = query1 + whereQuery


//Data Variables

var listOf []map[string]interface{}

        

结果正在传递,结果正在s.makeSqlQuery(query1, &listOf)查询 2 上传递,但有数百行,我只检索其中一行。我尝试使用 range 但我得到index out of range [0] with length 0


query2 = strings.Replace(query2, "listOfIds", fmt.Sprintf("%v", listOf[0]["itemIds"]), -1)


谢谢你!


叮当猫咪
浏览 82回答 1
1回答

SMILET

要回答这个问题。提供的上下文还不够。但我会添加一些答案。您可以迭代“listOf”映射并为每个项目构建单独的查询并在数据库中执行。或者迭代map并追加“itemIds”分别查询comman(,)在db中执行。例 1:    //Your Wayvar listOf []map[string]interface{}listOf = append(listOf, map[string]interface{}{})listOf[0]["1"] = "1"listOf[0]["3"] = "3"query2 := "select * from sometable where id= %s"ids := ""for _, v := range listOf {    for _, v1 := range v {        // replace logic        if ids == "" {            ids = fmt.Sprintf(`%v`, v1)            continue        }        ids += fmt.Sprintf(`,%v`, v1)    }}query2 = fmt.Sprintf(query2, ids) // select * from sometable where id= 3,1fmt.Println(query2)例 2: //  Easy Way    listOf := make(map[string]interface{})    listOf["1"] = "1"    listOf["2"] = "2"    query2 := "select * from sometable where id= %s"    ids := ""    for _, v := range listOf {        // replace logic        if ids == "" {            ids = fmt.Sprintf(`%v`, v)            continue        }        ids += fmt.Sprintf(`,%v`, v)    }    query2 = fmt.Sprintf(query2, ids) // select * from sometable where id= 1,2    fmt.Println(query2)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go