2012-11-26 47 views
2

嘗試做以下其中值爲數組的原始sql。紅寶石

ElectricityProfile.find_by_sql ["select * from electricity_profiles where owner_id IN ?", array]

不過似乎SQL不接受陣列。

是否有任何其他方式來檢查列對數組?

使用: Rails的3.2.x中 紅寶石193 MySQL的

回答

3

您需要?周圍括號。

ElectricityProfile.find_by_sql ["select * from electricity_profiles where owner_id IN (?)", array] 

ElectricityProfile.where("owner_id IN (?)", array) 
+0

甜!第一個工作,我不想爲此使用ActiveRecord –

+1

你知道'find_By_sql'也是'ActiveRecord'的一部分嗎? http://apidock.com/rails/ActiveRecord/Base/find_by_sql/class – oldergod

+0

@DanMyasnikov順便說一句,你接受答案越少,你就會有更少的人回答你的問題。 – oldergod

-2

使用下面。

  ElectricityProfile.find_by_sql("select * from electricity_profiles where owner_id in (?)", array]) 
+0

請更新你的答案,因爲你不使用原始的sql。這是ActiveRecord方法 –

+0

最好使用ActiveRecord。因爲它更高效。 – vijikumar

+1

你錯了,ActiveRecord更好用,但是原始的sql比大塊的數據有更好的性能。 –