使用可选参数对 Where 子句进行续集

Posted

技术标签:

【中文标题】使用可选参数对 Where 子句进行续集【英文标题】:Sequelize Where clause with optional params 【发布时间】:2020-05-12 13:12:18 【问题描述】:

如何使用可选参数编​​写 Sequelize 查询? 假设,我有以下查询:

        const result : SomeModel[] = await SomeModel.findAll(
                where: 
                    
                        id: givenId,
                        type: someType
                    
                );

如果 someType 为空,我如何改写相同的查询? 如果 someType 为 null,则应将其从 where 子句中删除,并且应仅根据 'id' 返回结果。

【问题讨论】:

【参考方案1】:

在外面定义where子句怎么样...

let where =  id: givenId ;

if(someType)
    where.type = someType;

...并像这样在查询中使用它

await SomeModel.findAll(where);

【讨论】:

谢谢,我也想到了这个。有用!但正在寻找更整洁的东西。

以上是关于使用可选参数对 Where 子句进行续集的主要内容,如果未能解决你的问题,请参考以下文章

游标 where 子句中的可选参数

sql Where子句中的可选参数

在 WHERE 子句中使用可选条件的正确方法

可选的SSRS参数

用于返回结果集的 where 子句中的 case 语句包含空值

SQLAlchemy中的可选参数