考虑一个包含文本字段的表格,具体形式如下:
"foo,bar"
编辑: “bar”是逗号后的第一个字符串。 只有一个逗号。
如何以最简单的方式按bar
排序? 可以使用SQL(PostgreSQL)或Ruby。
"foo,bar"
编辑: “bar”是逗号后的第一个字符串。 只有一个逗号。
如何以最简单的方式按bar
排序? 可以使用SQL(PostgreSQL)或Ruby。
MyTable.all.sort_by { |r| r.my_text.match(/,(.*)$/)[1] }
my_text.split(',')[1]
。 - Marek Příhodasplit [1]
将匹配“bar”。 - Moriorder by
语句会更好。 - Mori你可以在数据库内像这样做:
M.order("substring(c from ',.*$')")
其中M
是您的模型,c
是相关列。substring
调用会在子字符串中保留逗号,但这不会改变排序方式,而且在排序过程中比尝试删除它们更快。此外,PostgreSQL的substring
应该可以在8.2版本中使用,因此它应该可以与Heroku共享数据库一起使用。