Tag: sql like

Ruby on Rails – 基于查询在数据库中搜索

我有一个简单的表单,我在其中设置了一个我想浏览的查询,例如panasonic viera 。 这是我在数据库中搜索术语的方式: Product.where(“name ilike ?”, “%#{params[:q]}%”).order(‘price’) 该查询看起来像%panasonic viera% ,但我需要以这种方式搜索查询: %panasonic%viera% – 我需要找到所有产品,标题中的字段是panasonic或viera ……但是如何制作这个查询?

使用LIKE对未知(动态)查询数进行SQL查询

我有一个执行动态查询的Rails搜索表单。 也就是说,用户输入如下搜索: (hobby=”skiing”) OR (gender=”male” AND hobby=”jogging”) 所以,我不知道在运行之前我会搜索多少个查询。 我通过将搜索查询转换为有效的SQL查询来解析搜索查询,因此上述搜索将转换为以下格式: query = “hobby LIKE ? OR (gender LIKE ? AND hobby LIKE ?)” queries = [“skiing”, “male”, “jogging”] 对于以下查询: where(query, queries) 但是,Rails搜索查询的一般语法非常有限: where(query, query_1, query_2, query_3) 我不能用我想要的数组替换’query_n’参数,没有Rails抛出错误。 NoMethodError (undefined method `where’ for [“a”, “b”, “c”]:Array) 尝试splat数组会产生相同的错误: where(query, *queries) 再次: NoMethodError (undefined method `where’ for [“a”, “b”, […]