相关疑难解决方法(0)

如何在Arel和Rails中进行LIKE查询?

我想做的事情如下:

SELECT * FROM USER WHERE NAME LIKE '%Smith%';
Run Code Online (Sandbox Code Playgroud)

我在Arel的尝试:

# params[:query] = 'Smith'
User.where("name like '%?%'", params[:query]).to_sql
Run Code Online (Sandbox Code Playgroud)

但是,这变为:

SELECT * FROM USER WHERE NAME LIKE '%'Smith'%';
Run Code Online (Sandbox Code Playgroud)

Arel正确地包装查询字符串'Smith',但因为这是一个LIKE语句,所以它不起作用.

如何在Arel中进行LIKE查询?

PS奖金 - 我其实是想扫描桌子上两个字段,这两个名称和说明,看是否有查询的任意匹配.那会怎么样?

activerecord ruby-on-rails arel

111
推荐指数
2
解决办法
9万
查看次数

在Rails 3/ActiveRecord中构建LIKE查询时逃避%%的正确方法

我想将url字段与url前缀(可能包含百分号)匹配,例如.where("url LIKE ?", "#{some_url}%").什么是最多的Rails方式?

sql ruby-on-rails ruby-on-rails-3 rails-activerecord

20
推荐指数
3
解决办法
1万
查看次数

使用%和LIKE在Rails中进行SQL查询

我试图在我的rails应用程序中执行SQL查询.以下执行正常,因为它正在寻找完全匹配:

connection.query("SELECT * 
                  FROM test
                  WHERE y=#{connection.quote(name)}
                  ORDER BY x ASC")
Run Code Online (Sandbox Code Playgroud)

我想使用LIKE运算符来查找部分匹配.在SQL中它看起来像:

SELECT * FROM test WHERE y LIKE '%John%' ORDER BY x ASC

我如何在Ruby查询中执行此操作?我尝试%在几个地方添加,但它不起作用.我得到的错误说我的查询正在寻找%'John'%而不是'%John%'

connection.query("SELECT * 
                  FROM test
                  WHERE y LIKE #{%connection.quote(name)%}
                  ORDER BY x ASC")
Run Code Online (Sandbox Code Playgroud)

ruby sql ruby-on-rails

1
推荐指数
1
解决办法
571
查看次数