синтаксическая ошибка в этом коде MySQL - PullRequest
1 голос
/ 04 января 2012

Это код mysql, написанный для ruby ​​on rails application

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 ]

1 голос
/ 04 января 2012

Ключевое слово count является зарезервированным словом, поэтому его необходимо экранировать с помощью `` like:

... and `count` IN (SELECT Max( `count` ) FROM domainurls ...
1 голос
/ 04 января 2012

Здесь вам нужны данные в двух запросах, потому что IN может искать данные в массиве. Либо ваш запрос

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

вернет много столбцов.

Итак, сначала выполните этот запрос и возьмите счет в массиве, а затем выполните второй запрос.

Я думаю, вы поняли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...