![](/img/trans.png)
[英]SQL - How to select a row from a table with a specific data value and a key that only occurs once
[英]In rails, how to select one specific column's data from a table? (there is only 1 row so I want only a specific result but not an array)
表的名称是Plan,它只有一行 ,因为不允许用户创建新数据或删除现有数据。 他们只能编辑它。
对于表,结构如下:
<Plan id: 1, breakfast: 100, lunch: 240, dinner: 200, ...
这意味着它有三个不同的栏目:早餐,午餐和晚餐。
在控制器文件中,我想访问用户输入的一个特定列的数据,例如早餐。 我怎样才能做到这一点? 因为我对rails很新,并认为它类似于:
Plan.select("breakfast")
但是,我不希望结果是一个数组! 我只想要一个数字,以便我可以直接在我的代码中使用它:
if xxxx > 90
...
end
非常感谢你!
由于是保证只有一排,你可以通过直接抓住它.first
还是.last
。 虽然你可能想选择的列仅限制到所需的breakfast
用.select()
方法,它可能是没有必要的,你可以检索breakfast
从所得的对象:
Plan.last.breakfast
=> 100
# Generates this query:
Plan Load (0.4ms) SELECT "plans".* FROM "plans" ORDER BY "plans"."id" DESC LIMIT 1
使用.select()
以使SQL查询来检索只有 breakfast
列是可能的,但不会给你,不是一个很小的内存增加等带来多少好处。
Plan.select(:breakfast).last.breakfast
=> 100
# Generates this query:
Plan Load (0.4ms) SELECT breakfast FROM "plans" ORDER BY "plans"."id" DESC LIMIT 1
当然,您可以将其存储到变量中,或者在表达式中使用它:
if Plan.last.breakfast > 90
# whatever
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.