gendry icon indicating copy to clipboard operation
gendry copied to clipboard

NamedQuery 支持嵌套 map[string]interface{}, 实现过滤条件

Open xiao-xiao-xiao opened this issue 3 years ago • 0 comments

/*
{
    sql: `select {{foo}},{{bar}} from tb where address in {{addr}} and {{where}}`,
        data: map[string]interface{}{
		"foo":  "f1",
		"bar":  "f2",
		"addr": []string{"beijing", "shanghai", "chengdu"},
		"where": map[string]interface{}{
			"name in": []string{"1", "2"},
                         "age": 10,
		 },
	},
	cond: `select ?,? from tb where address in (?,?,?) and (age=? AND name IN (?,?))`,,
	vals: []interface{}{"f1", "f2", "beijing", "shanghai", "chengdu", 10, "1", "2"},
}
*/

where := map[string]interface{}{
		"foo":  "f1",
		"bar":  "f2",
		"addr": []string{"beijing", "shanghai", "chengdu"},
		"where": map[string]interface{}{
			"name in": []string{"1", "2"},
                          "age": 10,
		 },
	},

where["where"] = builder.Omity(where["where"],  []string{"age"})
// 使用此种方式来实现,复杂SQL, 部分条件需要过滤


xiao-xiao-xiao avatar May 11 '21 03:05 xiao-xiao-xiao