按以数字开头的字符串排序 - ActiveRecord
Ordering by String that starts with Number - ActiveRecord
我正在构建 Rails 应用程序并尝试按以数字开头的字符串列对数据库中的记录进行排序。
怎样才能先按号码下单?
我宁愿按 SQL 顺序排序,也不愿按 ruby 方法排序。有什么办法吗?
expected order
1.record1
2.record2
10.record10
present order
1.record1
10.record10
2.record2
您可以 order by
field + 0
将 field
的数据类型隐式更改为数字:
Model.order("field + 0 ASC")
# similar `string`.to_i in Ruby
# `1.record1` => 1
# `10.record10` => 10
我正在构建 Rails 应用程序并尝试按以数字开头的字符串列对数据库中的记录进行排序。
怎样才能先按号码下单?
我宁愿按 SQL 顺序排序,也不愿按 ruby 方法排序。有什么办法吗?
expected order
1.record1
2.record2
10.record10
present order
1.record1
10.record10
2.record2
您可以 order by
field + 0
将 field
的数据类型隐式更改为数字:
Model.order("field + 0 ASC")
# similar `string`.to_i in Ruby
# `1.record1` => 1
# `10.record10` => 10