红宝石 – 轨道 – 条件为零的条件
发布时间:2020-12-16 19:53:07 所属栏目:百科 来源:网络整理
导读:我发现使用符号的位置:my_id =没有使用老学校吗?是不同的.有人可以解释一下为什么吗 MyTable.where("my_id = ? ",nil).firstSELECT `my_tables`.* FROM `my_tables` WHERE (my_id = NULL ) LIMIT 1 没有任何数据 MyTable.where(:my_id = nil).firstSELECT
我发现使用符号的位置:my_id =>没有使用老学校吗?是不同的.有人可以解释一下为什么吗
MyTable.where("my_id = ? ",nil).first SELECT `my_tables`.* FROM `my_tables` WHERE (my_id = NULL ) LIMIT 1 没有任何数据 MyTable.where(:my_id => nil).first SELECT `my_tables`.* FROM `my_tables` WHERE (`my_tables`.`my_id` IS NULL) LIMIT 1 获取my_id为空的数据. 在铁轨上使用最好的做法是什么? 我想我没有清楚我的问题. 解决这个问题. 解决方案1 if params[:id].present? MyTable.where(:my_id => params[:id]).first end 解决方案2 MyTable.where("my_id = ? ",nil).first 如你所知,如果我们(如果条件越来越多),我们的应用程序会变慢,它不会是功能性编程. 解决方法
正确的SQL语法是my_id IS NULL,因此如果您将第一个代码段更改为以下内容,它将工作:
MyTable.where("my_id IS ?",nil).first 两种语法都是完美的.这取决于你自己的喜好.但是,如果它是一个参数,并且您不知道是否为零,则最好使用: MyTable.where(:my_id => parameter).first (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |