質問: `articles`.`id` GROUP BY comments.article_id HAVING (CONCAT(articles.description, GROUP_CONCAT(comments.description)) like '%ワード%') ``` 1054 - Unknown column 'articles.description' in 'having clause' となってしまいます。 * このエラーが出るのはカウント時のみで、selectを「articles.*」に置き換えると問題なく通ります。 * HavingをWhereに置き換えるとGROUP_CONCATが使えなくなってしまいます。 * エラー箇所であるarticles.descriptionを消すとクエリは通るのですが、当然記事本文が検索対象に含まれなくなります。 * そもそも、SELECTでcount_allのほかにcomments_article_idも指定されている理由もわかりません...。
回答: `having` とかはよくわかりませんが,最初のコードで正しく `articles` が得られるのであれば, ``` articles = Article .joins(:comments) .group("comments.article_id") .having("CONCAT(articles.text, GROUP_CONCAT(comments.text)) like '%検索ワード%'") article_count = articles.count articles = articles.limit(10).offset(10) ``` でいけませんかね。