我试图在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并获得所需的scount
答案 0 :(得分: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)
答案 1 :(得分: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
答案 2 :(得分:0)
我曾经遇到过同样的错误。它是由使用“&gt;”的日期比较引起的使用一个日期而不是单个日期的变量。我对这个问题的建议是仔细查看你的查询,并确保你传递给它的值是它们应该是什么。
编辑:虽然我的回答没有回答op的具体问题,谷歌搜索mysql错误导致我这个问题。这里的基本概念是mysql操作数被错误地使用。在op的情况下,'in'操作数需要与括号中的值列表一起使用。 (他们误用了“=”运算符)