考虑一个带有文本字段的表格,其格式如下:
"foo,bar"
编辑: “bar”是逗号后面的第一个字符串。 只有一个逗号。
bar
最简单的订购方式是什么?它可以是SQL(PostgreSQL)或Ruby。
答案 0 :(得分:3)
MyTable.all.sort_by { |r| r.my_text.match(/,(.*)$/)[1] }
答案 1 :(得分:1)
您可以在数据库中执行此操作:
M.order("substring(c from ',.*$')")
其中M
是您的模型,c
是相关列。 substring
调用将逗号保留在子字符串中但不会改变排序,并且在排序期间比较逗号可能比尝试删除它们更快。此外,这种形式的PostgreSQL substring
should work in 8.2所以它应该与Heroku共享数据库一起使用。