【问题标题】:Dynamically passing of parameter in rails sql query在rails sql查询中动态传递参数
【发布时间】:2017-10-27 20:00:04
【问题描述】:

下面是一个获取用户相关数据的 SQL 查询。

def self.get_user_details(user_id)

      result = Event.execute_sql("select replace(substring_index(properties, 'text', -1),'}','') as p, count(*) as count
                  from ahoy_events e where e.user_id = ?
                  group by p order by count desc limit 5", :user_id)

      return result
 end

我想动态地将值传递给用户 ID 以获得结果。 我正在使用下面的方法来清理 sql 数组,但它仍然没有返回任何结果。如果给定静态参数,查询工作正常。

   def self.execute_sql(*sql_array)     
       connection.execute(send(:sanitize_sql_array, sql_array))
    end

由于查询很复杂,我无法弄清楚 ActiveRecord 获取结果的方式。 有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: mysql ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    我不知道为什么这不起作用。五月 SQL-Syntac SELECT * FROM users ...

    您可以通过其他方式动态传递:"some string #{user.id#ruby code} some more string"

    您可以像这样在 Activerecord 中进行查询:User.where(id: user.id).where(field2: value2).group_by(:somevalue).order(:id)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-15
      • 1970-01-01
      相关资源
      最近更新 更多