Ruby on rails Rails使用AND而不是OR与where连接
我有一个作用域(其中Ruby on rails Rails使用AND而不是OR与where连接,ruby-on-rails,postgresql,activerecord,Ruby On Rails,Postgresql,Activerecord,我有一个作用域(其中title是一个数组) 默认情况下,这将执行和查询。我如何让它执行或查询?我似乎找不到任何这样的例子 我相信这就是生成的SQL: Label Load (0.1ms) SELECT "labels".* FROM "labels" WHERE "labels"."project_id" = $1 AND "labels"."title" = $2 ORDER BY "labels"."title" ASC LIMIT 1 [["project_id", 8], ["t
title
是一个数组)
默认情况下,这将执行和查询。我如何让它执行或查询?我似乎找不到任何这样的例子
我相信这就是生成的SQL:
Label Load (0.1ms) SELECT "labels".* FROM "labels" WHERE "labels"."project_id" = $1 AND "labels"."title" = $2 ORDER BY "labels"."title" ASC LIMIT 1 [["project_id", 8], ["title", "label1,label2,label3"]]
Rails/ActiveRecord仅支持或查询。在早期版本中,您需要使用SQL字符串来实现或
查询:
Widget.where(“name=?或name=?”、“foo”、“bar”)#postgres
当存在多种可能性时,同样的事情可以通过IN
查询更高效地完成,该查询是在ActiveRecord中通过将包含多个元素的数组传递给#方法生成的,其中
方法:
arr = ["foo", "bar", "baz"]
Widget.where(name: arr)
至于您发布的SQL输出:
Label Load (0.1ms) SELECT "labels".* FROM "labels" WHERE "labels"."project_id" = $1 AND "labels"."title" = $2 ORDER BY "labels"."title" ASC LIMIT 1 [["project_id", 8], ["title", "label1,label2,label3"]]
这里的和
来自这样一个事实,即正在对产品id
以及标题
进行查询,而不是因为与标题
有任何关系 Rails/ActiveRecord仅支持或查询。在早期版本中,您需要使用SQL字符串来实现或
查询:
Widget.where(“name=?或name=?”、“foo”、“bar”)#postgres
当存在多种可能性时,同样的事情可以通过IN
查询更高效地完成,该查询是在ActiveRecord中通过将包含多个元素的数组传递给#方法生成的,其中
方法:
arr = ["foo", "bar", "baz"]
Widget.where(name: arr)
至于您发布的SQL输出:
Label Load (0.1ms) SELECT "labels".* FROM "labels" WHERE "labels"."project_id" = $1 AND "labels"."title" = $2 ORDER BY "labels"."title" ASC LIMIT 1 [["project_id", 8], ["title", "label1,label2,label3"]]
这里的和
来自这样一个事实,即正在对产品id
以及标题
进行查询,而不是因为与标题
有任何关系 你在使用什么数据库?Postgres使用这样的数组不会导致和
或或
查询,而是在
中,将数组中的值放在括号中可以发布其中一个查询的SQL输出吗?如上所述,postgres在使用array@sixty4bit我已经发布了我的发现谢谢,我已经提出了一个答案,但我不认为它涵盖了这里发生的一切。你能把作用域所属的模型和生成SQL的代码发布到上面吗?@sixty4bit这是一个更大的项目的一部分。我不知道sql是如何获得输出的。该范围属于名为问题的模型。您使用的是什么数据库?Postgres使用这样的数组不会导致和
或或
查询,而是在
中,将数组中的值放在括号中可以发布其中一个查询的SQL输出吗?如上所述,postgres在使用array@sixty4bit我已经发布了我的发现谢谢,我已经提出了一个答案,但我不认为它涵盖了这里发生的一切。你能把作用域所属的模型和生成SQL的代码发布到上面吗?@sixty4bit这是一个更大的项目的一部分。我不知道sql是如何获得输出的。该范围属于名为问题的模型。