【问题标题】:ActiveRecord query works fine on sqlite but fails in mysqlActiveRecord 查询在 sqlite 上工作正常,但在 mysql 中失败
【发布时间】:2013-01-31 21:27:07
【问题描述】:

伙计们,

我有一个在使用 sqlite3 的开发机器上运行良好的 activerecord 语句,但是当我在使用 MySQL 的生产环境中运行相同的代码时,它会失败。代码如下:

avail = Account.count( :conditions => "room_name == 'jail' AND account_state IS NULL")

当我在生产环境中运行它时,我得到一个 MySQL 语法错误:

对于这句话,我也看到了同样的行为:

_acct = Account.where( "room_name == 'jail' AND account_state IS NULL").order("updated_at ASC").limit(1)

感谢您的反馈

【问题讨论】:

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


    【解决方案1】:

    我相信 MySQL 使用单个等号,而 sqlite 理解 = 和 ==

    试试

    "room_name = 'jail' AND account_state IS NULL"
    

    Reference

    【讨论】:

      【解决方案2】:

      这是你的问题:

      room_name == 'jail'
      

      MySQL 只需要一个 =。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-26
        • 2018-01-09
        • 2023-03-27
        • 2023-03-22
        • 2015-03-13
        • 2018-10-05
        • 2016-03-12
        • 1970-01-01
        相关资源
        最近更新 更多