使用多个列制作续集

f0brbegy  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(186)

在mysql(和其他数据库)中,您可以使用多个列执行where-in查询,如下所示:

SELECT * FROM trains WHERE (name, location) IN (('train1', 'us'), ... ,('train2', 'us'));

我正试着用sequelize:

const selectTrains = [
    {name: 'train1', location: 'us'},
    {name: 'train1', location: 'eu'},
    {name: 'train2', location: 'us'},
];

let dbTrains = await Trains.findAll({ where: { [Op.in]: selectTrains} });

但我得到以下错误:
未处理的PromisejectionWarning:错误:无效值{name:'train1',location:'us'}
文档并没有真正涵盖这个用例。这可能与 Op.in 接线员?

qcuzuvrc

qcuzuvrc1#

你可以用同样的方法 $or :

const selectTrains = [
    {name: 'train1', location: 'us'},
    {name: 'train1', location: 'eu'},
    {name: 'train2', location: 'us'},
];

Trains.findAll({ where: { $or : selectTrains} });

相关问题