Skip to content
This repository was archived by the owner on Apr 15, 2026. It is now read-only.
This repository was archived by the owner on Apr 15, 2026. It is now read-only.

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

Description

@xiao-xiao-xiao
/*
{
    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, 部分条件需要过滤

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions