Rails 3正则表达式。喜欢在查询中

时间:2013-06-03 07:09:13

标签: ruby-on-rails regex sql-like

我想查询我的数据库表,其中age字段的值为24或26。 我在我的查询中尝试使用'like'。

User.where('age like ? or age like ?',"%24%","%26%")

我在这里做错了吗?

3 个答案:

答案 0 :(得分:0)

试试这个

User.where("age in ?",["24","26"])

让你的字符串用逗号分隔符来表示你的年龄

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

答案 1 :(得分:0)

你也可以尝试这个..

User.where(:age => age_array)

答案 2 :(得分:0)

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

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%')

希望这个解决方案能为您提供帮助!