mysql - Rails & MySQL - 如何在 rails 中的 find_by_sql 中使用 LIKE 运算符和 %?

标签 mysql ruby-on-rails find-by-sql

如何删除变量周围的引号,以便我可以在 rails 中的 find_by_sql 中使用 LIKE 运算符?

@entries1 = Entry.find_by_sql(["SELECT `entries`.name as name FROM `entries` where `entries`.name like '%?%'",@something])

会产生

SELECT `entries`.name as name FROM `entries` where `entries`.name like '%'hello'%'

@something = 'hello'

最佳答案

不要将百分号放在 SQL 中,而是将它们添加到您要注入(inject)的变量中(在转义已经存在的百分号/下划线之后!)

"%#{@something.gsub('%', '\%').gsub('_', '\_')}%"

关于mysql - Rails & MySQL - 如何在 rails 中的 find_by_sql 中使用 LIKE 运算符和 %?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559263/

相关文章:

ruby-on-rails - Rails 4 - 多对多类别不会保存到数据库

ruby-on-rails - 为什么 find_by_sql 不适用于 PostgreSQL?

ruby-on-rails - find_by_sql 和 kamanari 分页

ruby-on-rails - find_by函数即使成功也不会成功

php - Codeigniter mysql 查询特殊字符

java - 当我输入正确和错误的密码时什么都没有发生

python - MySQL 连接器/python 在 django 中不工作

ruby-on-rails - ActiveRecord - 在查找多对多关系时避免记录实例化

php - mySQL:如何在数据库中的多个表中进行搜索?

ruby-on-rails - rails 3.1 : Should File Uploads be added to asset pipeline?