Rails中的SQL查询,其中值为IS BLANK(0或nil)

时间:2014-02-16 13:29:04

标签: sql ruby-on-rails

在Rails中有方法item.property.blank?对于属性为“0”或零或空白的情况属实。

如何进行SQL查询以检查值是否为空?

我现在有:

Item.where("name = 'Testname' AND property <> '1'")

显示了name ='Testname'和property ='0'的所有项目,但没有显示property = nil(未定义)的项目。

我的sql查询应该如何等同于

Item.where("name = 'Testname' AND property IS BLANK")

以便搜索结果中包含property ='0'和property = nil的所有项目?

2 个答案:

答案 0 :(得分:2)

Item.where("property IN ('0','') OR property IS NULL")

或更确切地说......

Item.where("name = 'Testname' AND (property IN ('0','') OR property IS NULL)")

答案 1 :(得分:0)

无需使用SQL字符串,您可以执行以下操作:

Item.where(name: 'Testname', property: [nil, '0', ''])

它将产生SQL查询

SELECT `items`.* FROM `items`
WHERE `items`.`name` = 'Testname'
AND (`items`.`property` IN ('0', '') OR `items`.`property` IS NULL)