【问题标题】:2 Find Conditions with one variable2 用一个变量查找条件
【发布时间】:2011-05-06 11:36:33
【问题描述】:

现在我的 Projects.paginate 中只有一个条件 代码如下

   def list
        @projects = Project.paginate(:page => params[:page], :per_page => 100, :order => (sort_column + ' ' + arrow), :conditions => ["description LIKE ?", "%#{query}%"])

我想在这里设置另一个条件,但事实证明这很困难。我试过了

   @projects = Project.paginate(:page => params[:page], :per_page => 100, :order => (sort_column + ' ' + arrow), :conditions => ["description OR name LIKE ?", "%#{query}%"])

但我从 SQL 控制器收到绑定错误。有任何想法吗?我也不能使用 = 号。

【问题讨论】:

  • 我不太了解 Rails,但SELECT ... WHERE description OR name LIKE '%foo%' 并不是真正有效的 SQL,或者至少它不会像您认为的那样做。它必须是WHERE description LIKE '%foo%' OR name LIKE '%foo%'

标签: mysql ruby-on-rails pagination


【解决方案1】:

您的条件数组中需要有两个绑定变量:

qt = "%#{query}%"
@projects = Project.paginate(:conditions => 
              ["description LIKE ? OR name LIKE ?", qt, qt], ..)

【讨论】:

  • 啊。考虑到 qt 和 qt 具有相同的值,这很奇怪。你会认为 SQL 只需一个变量就能理解。无论如何谢谢你!这确实解决了我的问题
猜你喜欢
  • 2011-12-12
  • 1970-01-01
  • 2022-06-14
  • 2018-08-03
  • 2021-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多