代码之家  ›  专栏  ›  技术社区  ›  Ash

任何人都能帮我处理这个SQL查询吗(在sqlite db browser中工作,但在rails中不工作)

  •  0
  • Ash  · 技术社区  · 15 年前

    Rails一直在向我吐:

    SQLite3::SQLException: near "SELECT": syntax error: 
            SELECT questions.id, questions.text, questions.question_type_id, questions.meta, questions.max_answer_length,
              COUNT(form_questions.id) AS expr1,
              (5) AS expr2,
              CAST(COUNT(form_questions.id) AS REAL) / CAST((5) AS REAL) AS expr3
            FROM questions, form_questions
            WHERE form_questions.question_id = questions.id
            GROUP BY questions.id, questions.text, questions.question_type_id, questions.meta, questions.max_answer_length
            HAVING expr3 >= 0.75
            ORDER BY COUNT(form_questions.id) DESC; 
    

    查询正确执行,在SQLite数据库浏览器中没有任何问题,但出于某种原因,Rails正在回避它。

    代码是:

      def self.find_by_commonality
        Question.find_by_sql(%&
            SELECT questions.id, questions.text, questions.question_type_id, questions.meta, questions.max_answer_length,
              COUNT(form_questions.id) AS expr1,
              (5) AS expr2,
              CAST(COUNT(form_questions.id) AS REAL) / CAST((5) AS REAL) AS expr3
            FROM questions, form_questions
            WHERE form_questions.question_id = questions.id
            GROUP BY questions.id, questions.text, questions.question_type_id, questions.meta, questions.max_answer_length
            HAVING expr3 >= 0.75
            ORDER BY COUNT(form_questions.id) DESC; & % [])
      end
    

    世界跆拳道会抱怨什么?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Staelen    15 年前

    有一个 在select语句前面,您确定它应该在那里吗?

        2
  •  -1
  •   JRL    15 年前

    看起来像是字符串格式问题。尝试不要跳过第一个括号和SQL语句开头之间的一行。