我在 Sinatra 项目中使用 DataMapper。我希望能够NOT LIKE
在 DataMapper finder 方法中使用 stament,但无法弄清楚如何做到这一点。
人们可能会想象这会起作用:
@people = People.all(:female => 1, :name.like.not => '%julie%')
...但 DataMapper 会引发错误。切换 and 的顺序not
并like
没有帮助。
有什么办法吗?
我在 Sinatra 项目中使用 DataMapper。我希望能够NOT LIKE
在 DataMapper finder 方法中使用 stament,但无法弄清楚如何做到这一点。
人们可能会想象这会起作用:
@people = People.all(:female => 1, :name.like.not => '%julie%')
...但 DataMapper 会引发错误。切换 and 的顺序not
并like
没有帮助。
有什么办法吗?
根据文档,您可以使用减法来产生NOT
查询:
# Subtraction produces a NOT query
Zoo.all(:state => 'IL') - Zoo.all(:tiger_count.gte => 5)
# in SQL => SELECT * FROM "zoos" WHERE
# ("state" = 'IL' AND NOT("tiger_count" >= 5))
因此,答案似乎是:
@people = People.all(:female => 1) - People.all(:name.like => '%julie%')