条件查询
字段条件
布尔:
=, !=
数值:
=, !=, >, <, >=, <=,
IN, NOT IN
时间:
=, !=, >, <, >=, <=
IN, NOT IN
字符:
=, !=, >, <, >=, <=
IN, NOT IN
Contains, HasPrefix, HasSuffix
ContainsFold, EqualFold (SQL specific)
可选 字段:
IsNil, NotNil
边条件
HasEdge. 满足边的实体,例如:
Pet
类型定义了owner
边,要查询满足该边(有主人的宠物)的实体:client.Pet. Query(). Where(user.HasOwner()). All(ctx)
HasEdgeWith. 满足边及其条件的实体列表,例如,在满足上一个例子的情况下,还要求主人的姓名为
a8m
:client.Pet. Query(). Where(user.HasOwnerWith(user.Name("a8m"))). All(ctx)
非 (NOT)
client.Pet.
Query().
Where(user.Not(user.NameHasPrefix("Ari"))).
All(ctx)
或 (OR)
client.Pet.
Query().
Where(
user.Or(
user.HasOwner(),
user.Not(user.HasFriends()),
)
).
All(ctx)
与 (AND)
client.Pet.
Query().
Where(
user.And(
user.HasOwner(),
user.Not(user.HasFriends()),
)
).
All(ctx)
自定义条件
自定义条件,可以让你自行书写满足所使用方言的查询条件。
pets := client.Pet.
Query().
Where(predicate.Pet(func(s *sql.Selector) {
s.Where(sql.InInts(pet.OwnerColumn, 1, 2, 3))
})).
AllX(ctx)
Last updated
Was this helpful?