首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在rails上使用SQL-IN运算符多次发生的相同ID。

在rails上使用SQL-IN运算符多次发生的相同ID。
EN

Stack Overflow用户
提问于 2014-09-25 08:53:15
回答 1查看 185关注 0票数 0

我使用以下sql语句:

代码语言:javascript
运行
复制
 Keyword.where("id IN (#{params[:keyword_ids]})").order("find_in_set(id, '#{params[:keyword_ids]}')")

这个语句的问题是,如果“关键字id”持有相同的id,则调用只返回它的id。

但是,我需要相同的数字(未实现)以及相同的顺序(使用此语句实现),如果相同的id发生的次数多于其他的,则不依赖于数组中的。

我该如何修改这句话。

谢谢你,小点

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-25 09:23:18

嗯,那不是一个bug,它是一个特性;)

我的第一个建议是净化你的意见。尽管Rails框架提供了帮助,但直接将params[:keyword_ids]传递到数据库,迟早还是会导致某种漏洞。

其次,最简单的解决方案可能是保持查询原样,将结果转换为映射,并将输入参数映射到结果。

赛斯样

代码语言:javascript
运行
复制
keywords = Keyword.where('id IN (?)', checked_keyword_ids)
keyword_map = Hash[keywords.map { |kw| [kw.id, kw] }]
checked_keyword_ids.map { |id| keyword_map[id] }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26034340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档