0

Rails ビュー ファイルで SQL クエリを実行しようとしています。ここにクエリがあります

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 = 53,112,110,111 および b_id > 0 および dd = 1)

sub_id には多くの id があるためだと思います。sub_id を 1 つずつ割り当てて、必要な scount を取得する方法

4

3 に答える 3

2

INの代わりに使えます=か?

scount=SubUrl.where("main_url_id = ? AND pc > ? AND sub_id IN (?) "\
                    "AND b_id > ? AND dd = ?", result.id,0,@subids,0,1)
于 2013-05-10T21:50:47.327 に答える
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
于 2013-05-09T09:03:17.080 に答える