0

伙计们,

我有一种情况,我的模型中有一个字符串属性(名称),其中包含以下格式的数据:

  • dan01
  • 乔尔02
  • ken01
  • raol01

我想做的是按名称查询和排序,但我希望 order by 以相反的顺序使用字符串,即dan01应该被视为10nad,想知道在 rails 中执行此操作的最佳方法是什么。

4

2 回答 2

1

这取决于您使用的数据库,因为您需要在数据库层执行此操作以提高性能。实际上,我认为您可能想重新考虑您在这里实际想要完成的工作,因为我怀疑这是否真的是您正在寻找的答案。-绝地心灵融合-

假设您使用的是 MySQL:如果您的模型是Person,那么您的查询将是Person.order('REVERSE(name)')

你可以用红宝石来做,阿拉,Person.all.sort_by{|p| p.name.reverse}但我真的不建议这样做。

在不知道您正在做什么的完整上下文的情况下,我会冒险猜测您想要存储第二个整数列,该列是您的排序顺序或类似的东西。

于 2013-03-15T21:30:16.077 回答
0

我面前没有 MySQL 数据库,但您应该能够执行以下操作:

Foo.order('REVERSE(name)')

以上适用于 Postgres,并且根据http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_reverse也应该适用于 MySQL 。

于 2013-03-15T21:29:25.090 回答