Gorm - 使用gorm时进行执行自定义SQL的几种方式
1、当只需要执行某个SQL而不需要进行获取返回值时
// 如果其中有变量,则使用?进行占位,
sql := "要执行的SQL"
// 在Exec方法中在sql 后面可以使用多个参数作为占位的补充
// 例如需要name=?,则写法可以使用util.Db.Exec(sql,"张三").Error
err := util.Db.Exec(sql).Error
if err != nil {
log.Println(err.Error())
}
2、当需要一个长组合SQL进行查询出来一个特定结果时
sql := "要执行的SQL"
// 接收返回结果的结构体
type User struct {
Id int
Name string
}
// 声明一个接收对象,这里接受多条时也可以使用数组进行
var userInfo User
err := util.Db.Raw(sql, "张三").Scan(&userInfo).Error
if err != nil {
log.Println(err.Error())
}
3、自定义处理返回值
sql := "要执行的SQL"
rows, err := util.Db.Raw(sql).Rows()
if err != nil {
log.Println(err.Error())
}
for rows.Next() {
// 处理逻辑
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」