与数组输入Activerecord进行多重或运算

亨德里克

我想链接多个OR条件。现在,我像字符串一样将它们链接起来。但是我想NULL用一个OR子句检查大约10-20个值

这有效:

Model.where("foo is NULL OR bar is NULL")

但是我宁愿有类似(伪代码)的东西:

Model.where("[:foo, :bar] IS NULL")
品尼

ActiveRecord不支持开箱即用地链接“ OR”,但是在您的情况下并不困难:

fields = %w{foo bar}
Model.where(fields.map{|f| "#{f} IS NULL"}.join(" OR "))

如果发现经常需要,甚至可以将其提取为可重用的方法:

module ActiveRecord
  class Base
    class << self
      def any_null(fields)
        where(fields.map{|f| "#{quote_column_name f} IS NULL"}.join(" OR "))
      end
    end
  end
end

现在您可以致电:

Model.any_null(w%{foo bar})

自然,这不支持自动表名解析,但是在大多数情况下,它应该可以解决问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel多重订单通过动态数组输入

来自分类Dev

PHP对多重数组进行多种排序?

来自分类Dev

通过数组进行多重搜索功能

来自分类Dev

使用数组进行用户输入

来自分类Dev

对用户输入进行排序的数组

来自分类Dev

在C中对数组进行算术运算

来自分类Dev

使用mongodb $ in运算符使用数组数组进行搜索

来自分类Dev

如何使用Javascript对输入值进行运算?

来自分类Dev

对N位输入进行“或”运算以获得1位输出

来自分类Dev

将用户输入与PHP数组进行比较

来自分类Dev

从数组输入以进行awk查找重复项

来自分类Dev

按输入值对php数组进行排序

来自分类Dev

将用户输入与PHP数组进行比较

来自分类Dev

在输入值的同时对数组进行排序

来自分类Dev

对输入文件中的数组进行 Shellsorting

来自分类Dev

使用没有for循环的数组元素进行运算

来自分类Dev

bash脚本中的数组元素进行数学运算

来自分类Dev

通过记录的行对数组进行数学运算

来自分类Dev

如何对从 PHP 中的 DB 数组获取的元素进行算术运算?

来自分类Dev

bash脚本中的数组元素进行数学运算

来自分类Dev

bash定义数组并将输入与存储的数组值进行比较

来自分类Dev

Numpy 数组多重掩码

来自分类Dev

如何对所有行的每列数组进行多重排序?(JavaScript)

来自分类Dev

使用算术运算符与比较运算符对数字数组进行排序

来自分类Dev

是否可以在App Maker中创建输入小部件?或者如何用数字进行多重选择?

来自分类Dev

PHP多重逻辑运算符

来自分类Dev

[]运算符和多重继承的歧义

来自分类Dev

JavaScript:如何将用户输入与数组进行比较?

来自分类Dev

如果输入数组定义为const,如何对它进行排序?

Related 相关文章

热门标签

归档