ruby-on-rails – Rails – 使用nil进行条件查询?
发布时间:2020-12-17 04:39:43 所属栏目:百科 来源:网络整理
导读:有什么想法这有什么不对吗? @contacts = current_user.contacts.where("fname = ? OR lname = ?",nil,nil) 我想要所有联系人,其中fname或lname为空. 这是它在日志中显示的内容,不确定为什么它没有获取记录. Contact Load (0.6ms) SELECT "contacts".* FROM
有什么想法这有什么不对吗?
@contacts = current_user.contacts.where("fname = ? OR lname = ?",nil,nil) 我想要所有联系人,其中fname或lname为空. 这是它在日志中显示的内容,不确定为什么它没有获取记录. Contact Load (0.6ms) SELECT "contacts".* FROM "contacts" WHERE ("contacts".user_id = 2) AND (fname = NULL OR lname = NULL) 思考? 谢谢 解决方法
如果你想要空(意味着一个空字符串,但实际上不是null),那么使用一个空字符串:
@contacts = current_user.contacts.where("fname = ? OR lname = ?","","") 否则,如果您真的想要空值,则需要使用is null措辞: @contacts = current_user.contacts.where("fname is null OR lname is null") 您还可以使用:lname => nil,但该格式不能用于OR查询.注意“lname =?”,nil和:lname =>之间的差异.零: @contacts = Contact.where("lname = ?",nil).to_sql # => SELECT "contacts".* FROM "contacts" WHERE (lname = NULL) @contacts = Contact.where(:lname => nil).to_sql # => SELECT "contacts".* FROM "contacts" WHERE "contacts"."lname" IS NULL (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |