【问题标题】:Insert NULL value in db using Raw sql queries in rails使用 Rails 中的原始 sql 查询在 db 中插入 NULL 值
【发布时间】:2015-06-01 06:19:44
【问题描述】:

我在我的 rails 应用程序中使用原始 sql 查询。我想在我的行中插入 NULL 值,就像活动记录如何使用 nil 一样,以便在我执行 Table.find_by_column(nil) 时获得该行。我尝试了“#{nil}”,因为没有任何 db 列像这样是空白的,所以我希望它为 NULL。

【问题讨论】:

  • 你正在使用什么查询,显示完整的查询你是如何尝试的
  • "INSERT into table_name (r_id, r_name) VALUES (0,'#{nil}')"
  • 试试这个"INSERT into table_name (r_id, r_name) VALUES (0,null)"
  • 感谢@Deep 成功了 :)

标签: mysql ruby-on-rails ruby-on-rails-4 activerecord


【解决方案1】:

你也可以试试这个。

sql = "INSERT into table_name (r_id, r_name) VALUES (1, null)"

records_array = ActiveRecord::Base.connection.execute(sql)

【讨论】:

    【解决方案2】:

    试试这个

    Model.find_by_sql "SELECT * FROM table  where column is NULL"
    

    【讨论】:

    • 谢谢@SachinR,但我希望它在插入时应该是原始 sql 但在搜索时会是 ActivRecord。
    【解决方案3】:

    nil 而不是#{nil} 怎么样

    Table.column = nil
    

    【讨论】:

      【解决方案4】:
      Model.find_by_column(nil)
      

      这将记录哪一列的值为 nil

      【讨论】:

        【解决方案5】:

        您可以使用以下方法更新所有记录:

        Model.update_all(:field_name => nil)
        

        然后您可以使用以下命令查找所有为 nil 的记录:

        Model.where(:field_name => nil)
        

        【讨论】:

          猜你喜欢
          • 2016-10-03
          • 1970-01-01
          • 2018-06-02
          • 1970-01-01
          • 2011-12-11
          • 2021-12-05
          • 1970-01-01
          • 2019-02-03
          • 2021-10-10
          相关资源
          最近更新 更多