Как вы явно находите запись, где поле NULL? - PullRequest
0 голосов
/ 04 июля 2018

Из документации :

Когда запрос со структурой, GORM будет запрашивать только те поля, которые имеют ненулевое значение, это означает, что если значение вашего поля равно 0, '', false или другим нулевым значениям, оно не будет использоваться для построения условий запроса.

Вот пример того, что я пытаюсь сделать:

type Dog struct {
  ID uuid.UUID
  OwnerID *uuid.UUID
}

Указатель идентификатора владельца может быть нулевым.

db.Where("owner_id", nil).Find(&dogs)

Но это возвращает всех собак (я ожидал этого от доктора). Я пытался сделать:

db.Where("owner_id", "NULL").Find(&dogs)

Но это возвращает пустой список.

Есть ли способ явного поиска поля значения NULL?

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Вы были близки в своей первоначальной попытке. Вы также можете достичь желаемого результата, написав запрос, как показано ниже.

db.Where("owner_id = ?", "NULL").Find(&dogs)
0 голосов
/ 04 июля 2018

Согласно документации, это должно работать:

db.Where("owner_id IS NULL").Find(&dogs)
...