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::Error: Operand should contain 1 column(s): SELECT suburls.* FROM suburls WHERE (main_url_id=16 and product_count > 0 and sub_id = 53,112,110,111 and b_id > 0 and dd = 1)

我认为是因为 sub_id 有很多 id。如何一次分配一个sub_id并获得所需的数量

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 回答
0

我曾经遇到过同样的错误。它是由使用 ">" 与一个日期数组而不是单个日期的变量进行日期比较引起的。对于这个问题,我对其他人的建议是仔细查看您的查询,并确保您传递给它的值是它们应该是的值。

编辑:虽然我的回答没有回答操作的具体问题,但谷歌搜索 mysql 错误让我想到了这个问题。这里的基本概念是错误地使用了 mysql 操作数。在 op 的情况下,“in”操作数需要与将他的值列表包装在括号中一起使用。(他们滥用了“=”运算符)

于 2016-01-28T20:46:27.313 回答