数据排序问题

使用 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 这里我要怎么写

已解决 悬赏分:0 - 解决时间 2021-11-28 13:33
反对 0举报 0 收藏 0

回答2

最佳
  • @

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

    list.findAll({
        order: [
             [ sequelize.cast(sequelize.col('num'), 'INTEGER') , 'ASC' ]
        ]
    })  
    支持 0 反对 0 举报
    2021-11-28 09:56
  • @

    应该是这样:

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

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

    支持 0 反对 0 举报
    2021-11-28 10:51