Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3正则表达式。喜欢查询_Ruby On Rails_Regex_Sql Like - Fatal编程技术网

Ruby on rails Rails 3正则表达式。喜欢查询

Ruby on rails Rails 3正则表达式。喜欢查询,ruby-on-rails,regex,sql-like,Ruby On Rails,Regex,Sql Like,我想查询年龄字段值为24或26的数据库表。 我尝试在查询中使用“like” User.where('age like ? or age like ?',"%24%","%26%") 我做错什么了吗?试试这个 User.where("age in ?",["24","26"]) 使用逗号分隔符在字符串中输入您的年龄 ages = "24,26,28,17,18" age_array = ages.split(",") User.where("age in ?",age_array) 你也可以

我想查询年龄字段值为24或26的数据库表。 我尝试在查询中使用“like”

User.where('age like ? or age like ?',"%24%","%26%")
我做错什么了吗?

试试这个

User.where("age in ?",["24","26"])
使用逗号分隔符在字符串中输入您的年龄

ages = "24,26,28,17,18"
age_array = ages.split(",")
User.where("age in ?",age_array)

你也可以试试这个

User.where(:age => age_array)

将此模式用于多个搜索属性:

ages = ["24", "26"]
query = ages.map { |age| "age like '%#{age}%'" }.join(" OR ")
User.where(query)
它将自动生成如下查询:

SELECT 'users.*' FROM 'users' WHERE (age like '%24%' OR age like '%26%')

希望这个解决方案能对您有所帮助

当您可以直接检查是否相等时,为什么要使用like?User.where=?或者年龄=?,24,26你的查询应该是有效的,你得到了什么错误?!用户如何。按年龄[24,26]查找?我相信@polurupraveen正在寻找一个LIKE@sameera207但当他只检查准确的数字时,他不必这样做,对吗?这将与字段值完全匹配。我想使用正则表达式进行查询,因为我的用户年龄是一个带逗号的字符串delimiter@polurupraveen然后,您可以尝试将字符串转换为intUser.whitege in?,[24,26]将给出语法错误,您必须使用[24,26]注释中的User.whitege来包围?