5 回答
TA贡献1946条经验 获得超4个赞
您可以尝试以下方法
var exists bool err = db.Model(model). Select("count(*) > 0"). Where("id = ?", id). Find(&exists). Error
TA贡献1846条经验 获得超7个赞
如果你想避免ErrRecordNotFound错误,你可以使用Find like db。限制(1)。Find(&user),Find 方法同时接受结构和切片数据
r := db.
Where("id = ? AND `key` = ? AND `value` = 0", myID, myKey).
Limit(1).
Find(&result)
r.Error
// handle error
exists := r.RowsAffected > 0
TA贡献1155条经验 获得超0个赞
你应该是一个结构或切片,而不是一个布尔。更多信息请点击这里: https://gorm.io/docs/sql_builder.html#Raw-SQLresult
这应该有效:
var result struct {
Found bool
}
db.Raw("SELECT EXISTS(SELECT 1 FROM my_table WHERE id = ? AND `key` = ? AND `value` = ?) AS found",
myID, myKey, "0").Scan(&result)
TA贡献1898条经验 获得超8个赞
您可以检查是否存在的另一种方法是使用:Count
count := int64(0)
err := db.Model(&MyStruct{}).
Where("id = ? AND key = ? AND value = 0", myID, myKey).
Count(&count).
Error
// handle error
exists := count > 0
TA贡献2012条经验 获得超12个赞
也许是一个迟到的回复,但我想分享我发现的答案,有可能直接扫描到一个布尔。变量的名称应更改为大写字母以实现此目的。
前任:
var Found bool
db.Raw("SELECT EXISTS(SELECT 1 FROM magic_table WHERE magic_field1 = ? AND magic_field2 = ? AND magic_field3 = ?) AS found",
valOfMagicField1, valOfMagicField2, valOfMagicField3).Scan(&Found)
- 5 回答
- 0 关注
- 164 浏览
添加回答
举报