数据排序问题

使用 sequelize 获取数据库数据,并使用 order 排序

问题是 order 排序的结果并不是期望的值

比如 数据库返回的数据是 [{num: 10}, {num: 3}, {num: 24}, {num: 9}, {num: 87}]]

通过

list.findAll({
    order: [
        ['num', 'ASC']
    ]
})  

排序之后得到的是 [10, 24, 3, 87, 9]

期望结果: [3, 9, 10, 24, 87]

所以,order 这里我要怎么写

阅读 2.5k
2 个回答

应该是因为被当成 string 来排序了,你试试这样

list.findAll({
    order: [
         [ sequelize.cast(sequelize.col('num'), 'INTEGER') , 'ASC' ]
    ]
})  

应该是这样:

User.findAll({ 
    order:  [  
        ['num',  'ASC']
    ]
})

再试试呢,希望能帮助到你。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏