如何在nodejs中使用'select if'函数与续集



我正在nodejs中开发一个rest api。我正在与一起使用sequelize库postgresql数据库。

使用nodejs中的sequelize,我想获得一个临时列来管理一些值。我有两列vip_startvip_end。这些列为DataTypes.DATEONLY格式。

当我选择所有列时,我想比较两个日期,最后用答案创建一个新列。如果为true,则为1,否则为0。然后我想按VIP_ANSWER (1 or 0)对选定的行进行排序。

在mysql中,它解决了这个问题:

( SELECT IF (CURDATE( ) >= DATE( vip_start ) AND CURDATE( ) <= DATE( vip_end ), 1, 0 ) ) as vip

如何在sequelize中制作它?:

const datetime = new Date();
return Phones
.findAll({
attributes: ['id', 'description',  'vip_start', 'vip_end','user_id' ],//I want to there new column like vip_answer [1,0] and order by this values
where: {
enabled: 1,
vip_start: { $lte: datetime }, // in there i am stopped (((
},
})
.then(phone => res.status(200).send(phone));

任何帮助都将不胜感激。

只需添加

[ sequelize.literal('( SELECT IF (CURDATE( ) >= DATE( vip_start ) AND CURDATE( ) <= DATE( vip_end ), 1, 0 ) )'),'vip']

到您的属性列表:

attributes: ['id', 'description',  'vip_start', 'vip_end','user_id' , [ sequelize.literal('( SELECT IF (CURDATE( ) >= DATE( vip_start ) AND CURDATE( ) <= DATE( vip_end ), 1, 0 ) )'),'vip'] ]

最新更新