1

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

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

我在这里做错了吗?

4

3 回答 3

0

你也可以试试这个。。

User.where(:age => age_array)
于 2013-06-03T08:16:37.687 回答
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%')

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

于 2013-10-12T20:24:20.153 回答
0

尝试这个

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

用逗号分隔符在字符串中考虑您的年龄

ages = "24,26,28,17,18"
age_array = ages.split(",")
User.where("age in ?",age_array)
于 2013-06-03T07:21:35.183 回答