Mysql 从包含中按字段筛选铁路超高
我在sequelize中尝试使用findAll方法时遇到了一些问题,并使用“include”选项进行了一些内部连接,并对我包含的表的字段进行了筛选 我尝试在包含的对象中添加where选项,认为它的工作方式与普通where子句类似,但它将该子句添加到内部联接中 这是模拟我的表的代码Mysql 从包含中按字段筛选铁路超高,mysql,node.js,sequelize.js,Mysql,Node.js,Sequelize.js,我在sequelize中尝试使用findAll方法时遇到了一些问题,并使用“include”选项进行了一些内部连接,并对我包含的表的字段进行了筛选 我尝试在包含的对象中添加where选项,认为它的工作方式与普通where子句类似,但它将该子句添加到内部联接中 这是模拟我的表的代码 如果不存在表,则创建表( id整数不是空主键, 名称VARCHAR(100)不为空 ); 如果不存在表,则创建表。\u A( id整数不是空主键, 名称VARCHAR(100)不为空, bId整数不为空, 外键(投标)
如果不存在表,则创建表(
id整数不是空主键,
名称VARCHAR(100)不为空
);
如果不存在表,则创建表。\u A(
id整数不是空主键,
名称VARCHAR(100)不为空,
bId整数不为空,
外键(投标)参考表B(id)
);
这是sequelize方法及其执行的基本查询的示例
它基本上执行如下查询:
选择
*
来自表a
内部联接表
表a.bId=表b.id
哪里
表a.name,如“%”关键字“%”或表a=NULL;
这是我试图在sequelize上执行的查询的一个示例
选择
*
来自表a
内部联接表
表a.bId=表b.id
哪里
(表a.name,如“%”关键字“%”或表a=NULL)
或
像“%”关键字“%”这样的表名称;
但我似乎找不到一种方法来使用sequelize,我也没有发现任何人有类似的问题。有人能帮我吗
import Sequelize from 'sequelize';
const Op = Sequelize.Op;
function randomMethod(keyWord) {
return table_a.findAll({
where: {
name: {
[Op.or]: [{ [Op.like]: '%' + keyWord + '%' }, null],
}
},
include: [{
model: table_b,
required: true,
as: "table_b",
}]
})
}