Ruby on rails rails 3中的查询

Ruby on rails rails 3中的查询,ruby-on-rails,database,ruby-on-rails-3,Ruby On Rails,Database,Ruby On Rails 3,我想在我的用户模型上运行一个查询,如下所示: @user = User.find(:all, :conditions=>["u_org != c_org and u_org == ?", current_web.role.id]) 这是用于运行查询的较旧样式,并且不起作用。你能帮我在rails 3中运行它吗。我试过: @user = User.where("u_org != c_org and u_org == ?", current_web.role.id).all 结果是[] 更新

我想在我的用户模型上运行一个查询,如下所示:

@user = User.find(:all, :conditions=>["u_org != c_org and u_org == ?", current_web.role.id])
这是用于运行查询的较旧样式,并且不起作用。你能帮我在rails 3中运行它吗。我试过:

@user = User.where("u_org != c_org and u_org == ?", current_web.role.id).all
结果是[]

更新:

根据答案,我已经删除了
==
,但查询仍然返回
[]
。我只尝试了
@user=user.find(:all,:conditions=>[“u_org=?”,current_web.role.id])
并成功返回了值,但我希望它是
@user=user.find(:all,:conditions=>[“u_org!=c_org and u_org=?”,current_web.role.id])

编辑:

样本数据:

组织=1

c_org=null


当前的_web.role.id=1

看起来不错,唯一的问题是您使用了双等于
=
。请按以下方式尝试“不正常工作”查询:

@user = User.find(:all, :conditions=>["u_org != c_org and u_org = ?", current_web.role.id])
@user = User.where("u_org != c_org and u_org = ?", current_web.role.id).all
同样,你的第二个问题如下:

@user = User.find(:all, :conditions=>["u_org != c_org and u_org = ?", current_web.role.id])
@user = User.where("u_org != c_org and u_org = ?", current_web.role.id).all

我认为问题是因为空,如果你想让所有
c_组织
不等于空的用户使用
c_组织不等于空
并且对于
c_组织
equalt to NULL使用
c_组织为空

@user = User.find(:all, :conditions=>["c_org IS NOT NULL and u_org = ?", current_web.role.id])
编辑

@user = User.find(:all, :conditions=>["(u_org != c_org OR c_org IS NULL) and u_org == ?", current_web.role.id])

你试过并且。。。?有一个错误,它没有返回预期的结果?你需要更具体一些。@MichaelSzyndel:我已经更新了我的问题。第一个查询也不起作用,请参阅vinodadhikary答案。它仍然是一样的。什么也没有发生。如果您得到
[]
作为回报,则执行查询时不会出现任何错误。你需要检查你的数据。您可以从只有一个返回记录的条件开始,然后应用另一个条件。我尝试了
@user=user.find(:all,:conditions=>[“u_org=?”,2])
并返回值,但当我使用
u_org=c_org
显示[],查看数据库表,u_org下有2个,c_org下为空。空值是否有作用?在
SQL
中,您可以使用
Is null
Is NOT null
检查
null
=
=
运算符不适用于
NULL
@sushilthe,该查询应该可以正常工作。请在您的问题中发布一些示例数据。我想要
u\u org!=c_组织
但c_组织的值为null@sushilthe:-检查我编辑的答案,我猜您希望拥有c_组织的用户为空,或者拥有c_组织的用户与u_组织不同