我正在使用 golang、go_reform、PostgreSQL。我想要做的是一个 REST 搜索实用程序,在我遇到条件搜索查询之前一切都很顺利。这里的“有条件”是指我在一个表中有 10 列要搜索,并且可能有很多组合,所以我无法单独处理它们。我需要的是一个查询生成器,但我不知道如何在 Go 中实现它。现在我有这样的想法,但似乎效率不高


type Query struct {

    Id               *int64

    FirstName        *string

    MiddleName       *string

    LastName         *string

    AreaId           *int64

    Birthday         *time.Time

}


func (table *Query) Find() (*User) {

    if table.Id != nil {

        idstr := fmt.Sprintf("WHERE Id = %d AND ", table.Id)

    }

    else idstr := "WHERE "

    }

    if table.FirstName != "" {

        firststr := fmt.Sprintf("FirstName = %s AND", table.FirstName)

    }

    else firststr := ""

}//and so on

Find()Query

顺便说一句,为了让我的谷歌搜索查询更准确,我发现了一堆与我的问题相关的东西,可能我现在会尝试使用它。对于那些也感兴趣的人: old go playground example

gorp 包(片段听起来很有前途)