使用 Rails 和 PostGreSQL 查找 id 数组,同时保持顺序
我有一个想要从数据库获取的对象 id 数组,但是 PostGreSQL 返回按 id 排序的它们:
Users.find([4, 1, 3])
=> [User 1, User 3, User 4]
我知道我可以像这样对它们进行排序:
ids = [4, 3, 1]
r = Users.find(ids)
users = ids.map{|id| r.detect{|each| each.id == id}}
但如果我可以用数据库执行此操作不是更好吗?我知道 MySQL 有一个“字段”选项。 PostGreSQL 有类似的东西吗?
谢谢你,
凯文
I have an array of ids of objects that I want to get from the database, but PostGreSQL returns them sorted by ids:
Users.find([4, 1, 3])
=> [User 1, User 3, User 4]
I know I could sort them back like this:
ids = [4, 3, 1]
r = Users.find(ids)
users = ids.map{|id| r.detect{|each| each.id == id}}
But wouldn't it be better if I could do this with the database? I know MySQL has a "field" option. Does PostGreSQL has something equivalent?
Thank you,
Kevin
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该函数将模拟 MySQL 中的
用法示例:
This function will simulate the one from MySQL
Example of usage: