在rails中構建sql查詢以僅從數據庫中選擇某些列的方式是什麼?我有一些大數據字段,我想避免從連續的週期性ajax調用中加載。不必要的閱讀是資源消耗和緩慢。Ruby rails - 從數據庫中只選擇幾列
@itemlist = Item.find(:all, :conditions => { .... }) #this select all columns
我要找的SELECT name, address FROM users;
代替SELECT * FROM users;
在rails中構建sql查詢以僅從數據庫中選擇某些列的方式是什麼?我有一些大數據字段,我想避免從連續的週期性ajax調用中加載。不必要的閱讀是資源消耗和緩慢。Ruby rails - 從數據庫中只選擇幾列
@itemlist = Item.find(:all, :conditions => { .... }) #this select all columns
我要找的SELECT name, address FROM users;
代替SELECT * FROM users;
Rails 3:
Item.select("name, address").where(....)
是的,太棒了!推薦這個,因爲Rails 3比第二個更受歡迎 – 2013-04-13 13:07:24
另外值得注意的是,如果你的'SELECT'語句中有多個表,並且你引用了一個可能存在於多個表中的列,在select中包含表,如'select(「items.name,users.address」)'。 – 2014-08-27 16:39:28
我連接表時不工作 – Chinmay235 2016-05-20 10:12:13
試試這個:
@itemlist = Item.find(:all, :select => "name, address", :conditions => { .... })
。利用:select
構建的。試試這個:
@itemlist = Item.select('name, address', conditions: { .... })
對於以前版本的Rails:
@itemlist = Item.find(:all,:select => 'name, address', :conditions => { .... })
這不再正確,並且在Rails 4中不受支持。回答需要更新。 – superluminary 2015-05-21 15:21:26
superluminary的評論後,答案已經更新,以反映新的.select語法。 – 2015-11-10 20:26:25
使用阿雷爾(又名Rails中3),使用:
Item.where(...).select("name, address")
而且,它似乎如果得到。選擇忽略你在一個範圍有一個:include => ...
感謝您的幫助! – 2012-04-21 14:08:22
@itemlist = Item.select('name, address').where(...#some condition)
通常,如果你不需要/使用等欄目,你應該考慮數據標準化。 – 2012-04-21 09:46:16