2013-06-03 2 views
1

Я хочу запросить мою таблицу базы данных, где возрастное поле имеет значение 24 или 26. Я попытался использовать «как» в моем запросе.Rails 3 правильный выражение. как в запросе

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

Я делаю что-то неправильно здесь?

+0

Почему вы используете, например, когда можете проверить право на равенство? User.where ("age =? Or age =?", 24, 26) – pahnin

+0

Ваш запрос должен работать, какая у нас ошибка, которую вы получаете?! – sameera207

+0

Как насчет User.find_by_age ([24,26])? – Puneeth

ответ

0

попробовать это

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

Пусть consdier свой возраст в строке с запятой разделителем

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

Я получаю ошибку «неправильное количество переменных привязки (1 для 2)» –

+0

Я считаю, что @polurupraveen ищет один с LIKE – sameera207

+0

@ sameera207, но он не должен, когда он только проверяет точное число, не так ли? – pahnin

0

Вы можете попробовать это тоже ..

User.where(:age => age_array) 
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%') 

Надеется, что это решение поможет вам!

Смежные вопросы