2013-05-09 61 views
0

我試圖在rails視圖文件中執行SQL查詢。這裏是查詢Mysql2 ::錯誤:操作數應該包含1列

scount=SubUrl.where("main_url_id=? and pc > ? and sub_id = ? and b_id > ? and dd = ?", result.id,0,@subids,0,1) %> 

但我收到以下錯誤。

Mysql2 ::錯誤:操作數應包含1列(多個):SELECT suburls * FROM suburls WHERE(main_url_id = 16和PRODUCT_COUNT > 0和sub_id = 53112110111和B_ID > 0和DD = 1)

。我認爲它是因爲sub_id有很多id。如何分配sub_id一次一個,並獲得所需的SCOUNT

回答

0

嘗試是這樣的:

@scount = [] 

@subids.each do |subid| 
@scount << SubUrl.where("main_url_id=? and pc > ? and sub_id = ? and b_id > ? and dd = ?", result.id,0,subid,0,1) 
end 
+0

我嘗試了你所說的。但是,當我檢查子目錄內容時,它將scount返回爲0.它具有我想要的所有結果。但由於某種原因它返回零。 – user2218532 2013-05-09 11:08:24

1

你能使用IN代替=

scount=SubUrl.where("main_url_id = ? AND pc > ? AND sub_id IN (?) "\ 
        "AND b_id > ? AND dd = ?", result.id,0,@subids,0,1) 
0

我有同樣的錯誤一次。它是由日期比較引起的,使用「>」和一個日期數組而不是單一日期的變量。我對這個問題的建議是密切關注你的查詢,並確保你傳遞給它的值是他們應該做的。

編輯:雖然我的回答沒有回答操作的具體問題,谷歌搜索mysql錯誤導致我這個問題。這裏的基本概念是mysql操作數被錯誤地使用。在op的情況下,'in'操作數需要與括號中的值列表一起使用。 (他們濫用「=」運算符)

相關問題