伙计们,
我有一种情况,我的模型中有一个字符串属性(名称),其中包含以下格式的数据:
- dan01
- 乔尔02
- ken01
- raol01
我想做的是按名称查询和排序,但我希望 order by 以相反的顺序使用字符串,即dan01应该被视为10nad,想知道在 rails 中执行此操作的最佳方法是什么。
伙计们,
我有一种情况,我的模型中有一个字符串属性(名称),其中包含以下格式的数据:
我想做的是按名称查询和排序,但我希望 order by 以相反的顺序使用字符串,即dan01应该被视为10nad,想知道在 rails 中执行此操作的最佳方法是什么。
这取决于您使用的数据库,因为您需要在数据库层执行此操作以提高性能。实际上,我认为您可能想重新考虑您在这里实际想要完成的工作,因为我怀疑这是否真的是您正在寻找的答案。-绝地心灵融合-
假设您使用的是 MySQL:如果您的模型是Person
,那么您的查询将是Person.order('REVERSE(name)')
你可以用红宝石来做,阿拉,Person.all.sort_by{|p| p.name.reverse}
但我真的不建议这样做。
在不知道您正在做什么的完整上下文的情况下,我会冒险猜测您想要存储第二个整数列,该列是您的排序顺序或类似的东西。
我面前没有 MySQL 数据库,但您应该能够执行以下操作:
Foo.order('REVERSE(name)')
以上适用于 Postgres,并且根据http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_reverse也应该适用于 MySQL 。