账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    sequlize 根据自定义字段排序
    28
    0
    let pets=await ctx.model.Pet.findAndCount({
                offset:offset,
                limit:query.limit,
                order: [
                    [ctx.model.User,ctx.model.Shop,'userId','ASC'],
                    ['createdAt', 'DESC']
                ],
                include:[
                    {
                        model:ctx.model.User,
                        as:'user',
                        include:[
                            {
                                model:ctx.model.Shop,
                                attributes:{
                                    include:[
                                        // [ctx.model.fn('max',ctx.model.Sequelize.col('latitude')),'distance']
                                        [ctx.model.fn('apart',ctx.model.Sequelize.col('latitude'),ctx.model.Sequelize.col('longitude'),2.0,2.0),'distance']
                                    ]
                                },
                            }
                        ]
                    },
                ]
            });

    这样是可以的
    但是我想排序根据shop的自定义字段distance来排序就有问题了

     order: [
                    [ctx.model.User,ctx.model.Shop,'distance','ASC'],
                    ['createdAt', 'DESC']
                ],
    

    Unknown column 'user->shop.distance' in 'order clause'

    要怎样才能根据shop的自定义字段distance来排序呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 樱の花が舞う 普通会员 1楼

      在SQL中,你可以使用ORDER BY子句来根据自定义字段对结果进行排序。以下是一个例子:

      假设你有一个名为employees的表,其中包含namesalary两个字段。你想按照salary字段对员工进行降序排序。你可以这样做:

      sql SELECT * FROM employees ORDER BY salary DESC;

      这将返回一个结果集,其中name字段按降序排列,salary字段按升序排列。

      如果你想按照多个字段进行排序,你可以使用多个ORDER BY子句。例如,如果你想按照namesalary字段的升序和降序分别排序,你可以这样做:

      sql SELECT * FROM employees ORDER BY salary DESC, name ASC;

      这将返回一个结果集,其中name字段按降序排列,salary字段按升序排列,然后在每个字段之后显示排序后的结果。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部