Rails PostgreSQL 按字符串的整数值排序
Rails PostgreSQL sort by integer value of string
我在 Rails 应用程序上开发数据库架构时犯了一个战略性错误
现在我必须使用
实现按价格功能排序
MyModel.order('price DESC')
price是数据库中的字符串类型,导致50大于2000例如
有没有什么方法可以在不改变数据库结构的情况下实现这样的.order()
?
编辑:
我为价格栏切换到正确的类型(整数)。重构只花了我一个小时。
使用 PostgreSQL,您需要将字符串转换为 integer
/float
/decimal
(在您决定 100% 不会将列类型更改为 正确一个):
MyModel.order('price::integer DESC')
考虑一下 answer 以使其运行更快。
我在 Rails 应用程序上开发数据库架构时犯了一个战略性错误
现在我必须使用
实现按价格功能排序MyModel.order('price DESC')
price是数据库中的字符串类型,导致50大于2000例如
有没有什么方法可以在不改变数据库结构的情况下实现这样的.order()
?
编辑:
我为价格栏切换到正确的类型(整数)。重构只花了我一个小时。
使用 PostgreSQL,您需要将字符串转换为 integer
/float
/decimal
(在您决定 100% 不会将列类型更改为 正确一个):
MyModel.order('price::integer DESC')
考虑一下 answer 以使其运行更快。