// SELECT count(*) FROM `user` WHERE `user`.`deleted_at` IS NULL result = db.Model(&User{}).Count(&count) 有时候遇到比较复杂的业务,我们可能需要使用 SQL 子查询,子查询可以嵌套在另一个查询中,GORM 允许将*gorm.DB对象作为参数时生成子查询: 1 2 3 4 varavgages []float64 // SELECT AV...
软删除是指执行 Delete 时,记录不会被从数据库中真正删除。GORM 会将 DeletedAt 设置为当前时间,并且不能通过正常的方式查询到该记录。如果模型包含了一个 gorm.DeletedAt 字段,GORM 在执行删除操作时,会软删除该记录。上面的删除方法就是一个软删除。 可以看到,GORM 并没有真正把记录从数据库删除掉,而是只更新...
Delete 删除关系 Replace 替换关系 Clear 清楚所有关系Count 关联计数 以has one 为例确定关联模型func main() { db, _ := gorm.Open(mysql.New(mysql.Config{DSN: "root:123456@tcp(127.0.0.1:3306)/gormDB?charset=utf8mb4&parseTime=True&loc=Local"}), &gorm.Config{}) db.AutoMigrate(&User{}, ...
", "jinzhu 2").Count(&count) // SELECT count(1) FROM users WHERE name = 'jinzhu' OR name = 'jinzhu 2' db.Model(&User{}).Where("name = ?", "jinzhu").Count(&count) // SELECT count(1) FROM users WHERE name = 'jinzhu'; (count) db.Table("deleted_users").Count(&count) /...
// Count 计算行数 // SELECT count(*) FROM `user` db.Model(Food{}).Count(&total) // Group Having 分组查询,其中写 sql 部分,Group 必须和 Select 一起连用 // SELECT type, count(*) as total FROM `user` GROUP BY type HAVING (total > 0) ...
DeletedAt gorm.DeletedAt`gorm:"index"`}typeUserstruct{gorm.Model Namestring}// 等效于typeUserstruct{IDuint`gorm:"primaryKey"`CreatedAt time.Time UpdatedAt time.Time DeletedAt gorm.DeletedAt`gorm:"index"`Namestring} 字段标签 声明model时,tag是可选的,GORM 支持以下 tag: tag 名大小写不敏感,但...
count函数获取记录条数 sql SELECT count(*) FROM users WHERE name ='ee'; gorm varcountintdb.Where("name=?","ee").Count(&count) 将创建的int类型以指针的方式传入(对指针操作使修改生效) 数据更新 sql UPDATE users SET name='hello' WHERE id=111; ...
gorm.Model 是包含了一个 ID , CreateAt, UpdateAt, DeletedAt 四个字段的 Golang 结构体 代码语言:javascript 复制 // gorm.Model 定义 type Model struct { ID uint `gorm:"primary_key"` CreatedAt time.Time UpdatedAt time.Time DeletedAt *time.Time } 模型定义示例 代码语言:javascript 复制 type ...
Return string `form:"return" json:"return" binding:"omitempty,eq=all_list|eq=all_count"` PoetNumber uint `form:"number" json:"number"` Like uint `form:"like" json:"like"` Dynasty string `form:"dynasty" json:"dynasty"` } func ShowListPoetHandler(c *gin.Context) { ...
typeModelstruct{IDuint`gorm:"primarykey"`CreatedAttime.TimeUpdatedAttime.TimeDeletedAtDeletedAt`gorm:"index"`} 由于我们不使用自动迁移功能,所以需要手动编写 SQL 语句来创建user数据库表结构: CREATETABLE`user`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(50)DEFAULT''COMMENT'用户名',`email`varchar...