Gorm - 使用gorm时进行执行自定义SQL的几种方式

发布时间 2023-05-31 15:20:19作者: 李若盛开

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、自定义处理返回值