gpt4 book ai didi

go - 如何将 gorm.DB 查询转换为其字符串表示形式

转载 作者:行者123 更新时间:2023-12-05 05:33:48 24 4
gpt4 key购买 nike

假设我在 Go 中有一个 gorm.DB 对象,我想提取并断言我构建的查询以查看它是否正确构建。如何将查询的“字符串”表示形式与此对象进行比较?

最佳答案

确保您的 gorm 是最新的。

  1. 使用ToSQL

例子:

sql := DB.ToSQL(func(tx *gorm.DB) *gorm.DB {
return tx.Model(&User{}).Where("id = ?", 100).Limit(10).Order("age desc").Find(&[]User{})
})
sql //=> SELECT * FROM "users" WHERE id = 100 AND "users"."deleted_at" IS NULL ORDER BY age desc LIMIT 10
  1. 使用DryRun Mode

例子:

stmt := db.Session(&Session{DryRun: true}).First(&user, 1).Statement
stmt.SQL.String() //=> SELECT * FROM `users` WHERE `id` = $1 ORDER BY `id`
stmt.Vars //=> []interface{}{1}
  1. 使用Debug

例子:

db.Debug().Where("name = ?", "jinzhu").First(&User{})

关于go - 如何将 gorm.DB 查询转换为其字符串表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73762321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com