【问题标题】:Active Record query causing SQLException near "," syntax errorActive Record 查询导致“,”附近的 SQLException 语法错误
【发布时间】:2012-10-11 05:43:36
【问题描述】:

我正在尝试显示表 STUDENTS 中具有属性值的所有此类行,例如 COURSE IN 一组给定值,例如'MS', 'PhD'.

我使用params 获取students_controller.rb 文件中的值。我尝试使用 where 运行 Active Record 查询来完成这项工作:

@all_courses = ['MS', 'PhD', 'BA', 'MSc']

@students = Student.where("course IN :courses" , {:courses => params.has_key?(:courses) ? params[:courses].keys : @all_courses})

但我收到以下错误:

SQLite3::SQLException: near ",": syntax error: SELECT "students".* FROM "students"  WHERE (course IN 'MS', 'PhD', 'BA', 'MSc')

我认为错误可能是由于缺少 ;在 Active Record 生成的 SQL 查询的末尾,但我无法做任何事情来获取末尾的分号。

【问题讨论】:

  • 我认为您需要在 IN 子句的值周围加上括号,例如 SELECT "students".* FROM "students" WHERE course IN ('MS', 'PhD', 'BA', 'MSc')

标签: sql ruby-on-rails activerecord sqlite


【解决方案1】:

你需要使用括号:"course IN (:courses)"

【讨论】:

    猜你喜欢
    • 2018-11-21
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多