【发布时间】:2024-01-23 15:23:01
【问题描述】:
我有一个数据库,其中每一行对应一个具有以下字段的结构
type item struct {
ItemId *string `json:"item_id"`
OwnerId *string `json:"owner_id"`
Status *string `json:"status"`
... // many more
}
在数据库内部,所有行的所有字段都被填充。现在我想要一个函数,它接受一个 item 对象,其字段可能不会被填充为输入并返回一个 SQL 查询字符串。例如
func FindItems(filter item) string
输入item 用作过滤器。逻辑如下(类python风格)
query = `select * from item_table`
condition = ""
for field, value in filter:
if value != nil:
condition = " and " if condition else " where "
condition += " field=value"
query += condition
如何在 go 中执行此操作?或者有没有更好的方法在 go 中进行过滤?
【问题讨论】: