【问题标题】:Sequelize: Query with order by a field in JSONB object as numberSequelize:按 JSONB 对象中的字段顺序查询为数字
【发布时间】:2023-02-06 19:01:14
【问题描述】:

我已经查看了Sequelize: Query with order by a field in JSONB object,但仍然有一些错误。

当我按其中包含数字的 json 字段对查询进行排序时,它会将其排序为字符串,结果将是

1
11
111
2
22
222
3
33
333

有什么方法可以按 json 字段对查询进行排序,如下所示?

1
2
3
11
22
33
111
222
333

我使用的代码是这样的:

models.findAll({
    order:[
        ['json.a','DESC']
    ]
});  

谢谢,对不起我的英语不好。

【问题讨论】:

  • 你能分享一些数据和表定义吗
  • edit您的问题(通过单击下方的edit 链接)并添加您正在运行的查询。
  • 感谢评论,已编辑。

标签: postgresql sequelize.js


【解决方案1】:

只需使用CAST 转换提取的数据

select json_id
from mytable
order by CAST ( json_id AS integer )

Demo here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2015-04-13
    • 2017-06-27
    • 2016-04-08
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    相关资源
    最近更新 更多