这个mysql代码中的语法错误

时间:2012-01-04 10:21:30

标签: mysql ruby-on-rails mysqli

这是在rails应用程序上为ruby编写的mysql代码

Model.find_by_sql(["SELECT * FROM domainurls WHERE domaindetail_id = ?",@id ,"and count IN (SELECT Max( count ) FROM domainurls WHERE domaindetail_id =?",@id,")"])

它给了我错误

"error is: wrong number of arguments (0 for 1)"

任何人都可以知道代码中的错误吗?

2 个答案:

答案 0 :(得分:1)

这里需要两个查询中的数据,因为IN可以搜索数组中的数据。 您的查询

(SELECT Max( count ) FROM domainurls WHERE domaindetail_id =?",@id,")

会返回很多列。

首先执行此查询并在数组中获取计数,然后执行第二次查询。

我想你已经理解了。

答案 1 :(得分:1)

关键字count是一个保留字,所以你必须用``like:

来转义它。
... and `count` IN (SELECT Max( `count` ) FROM domainurls ...