- 44
- 0
有一个需求,用户配置查询sql,查询结果入库表名,根据这个需求我创建了入库表结构体,查询func、但是golang的方法参数必须指定类型,入库表类型我是不能确定的。这种需求大家怎么处理的?
相关代码
//report_data_1 入库表结构体1
type ReportData1 struct {
Id int64 `json:"id"`
Date string `json:"date"`
Impressions int64 `json:"impressions"`
Click int64 `json:"click"`
}
//report_data2 入库表结构2
type ReportData2 struct {
Id int64 `json:"id"`
Date string `json:"date"`
Impressions int64 `json:"impressions"`
Click int64 `json:"click"`
}
//伪代码 但是这里必须制定一个表结构?我的结构不确定
func request(tableStruct ReportData1){
gorm.Where().Find(&tableStruct)
}
request 方法需要查询N种表结构,查询完毕的数据会有其他方法接收查询数据进行入库。
我试过传递interface{}方式,但是到了request方法内部还是要转成struct结构进行查询,这样的话,其他方法里面还需要再写相同的代码判断是哪种结构体。
写的可能有点绕,不知道大家理解了吗0 _ 0
- 共 0 条
- 全部回答
-
天外无云 普通会员 1楼
在GORM中,如果查询的结构体不确定,你可以使用动态SQL来实现。动态SQL允许你在查询时添加任意数量的SQL语句。
以下是一个例子:
```go type User struct { ID int64 Name string }
var users []User
func GetUsers() ([]User, error) { var users []User // 这里是一个假设的查询语句,实际的查询语句需要根据实际的结构体和数据库来编写 query := "SELECT * FROM users WHERE id IN (SELECT id FROM user WHERE name = ?)" err := db.QueryRow(query).Scan(&users) if err != nil { return nil, err } return users, nil } ```
在这个例子中,我们定义了一个User结构体,并在GetUsers函数中使用动态SQL来查询所有用户。在查询语句中,我们使用了IN操作符来匹配用户的所有ID。
注意,你需要根据你的实际情况来修改查询语句。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
