我正在使用GORM訪問我的數(shù)據(jù)庫中的記錄。現(xiàn)在我想檢索所有未刪除的記錄,這意味著屬性 DeletedAt 必須為 NULL。我用 嘗試了以下命令鏈WHERE(),但沒有返回任何結(jié)果。users := []*models.User{}db.Where("deleted_at", nil).Find(&users)和db.Where("deleted_at", "NULL").Find(&users)我的數(shù)據(jù)庫模型由以下結(jié)構(gòu)定義:type Model struct { ID uint `gorm:"primary_key"` CreatedAt time.Time UpdatedAt time.Time DeletedAt *time.Time}type User struct { gorm.Model Username string `sql:"size:32; not null; unique"` Password string `sql:"not null"` Locale string `sql:"not null"`}
1 回答

九州編程
TA貢獻1785條經(jīng)驗 獲得超4個贊
對于所有 RDBMS,SQL 標準要求涉及與 NULL 值進行比較的條件始終為假。因此,以下查詢始終返回空結(jié)果:
select * from XXX where deleted_at = NULL
如果你想搜索 NULL 值,你應(yīng)該寫:
select * from XXX where deleted_at is null
我認為您可以通過確保 GORM 生成正確的查詢來解決這個問題。例如,這應(yīng)該有效(未經(jīng)測試):
db.Where("deleted_at is null").Find(&users)
- 1 回答
- 0 關(guān)注
- 547 瀏覽
添加回答
舉報
0/150
提交
取消