在Rails中对字符串字段的一部分进行SQL查询的最简单方法是什么?

时间:2011-12-05 15:48:04

标签: sql ruby-on-rails ruby postgresql sql-order-by

考虑一个带有文本字段的表格,其格式如下:

"foo,bar"

编辑: “bar”是逗号后面的第一个字符串。 只有一个逗号。

bar最简单的订购方式是什么?它可以是SQL(PostgreSQL)或Ruby。

2 个答案:

答案 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共享数据库一起使用。