Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用sequelize和mysql根据包含的模型属性筛选数据_Javascript_Mysql_Node.js_Database_Sequelize.js - Fatal编程技术网

Javascript 无法使用sequelize和mysql根据包含的模型属性筛选数据

Javascript 无法使用sequelize和mysql根据包含的模型属性筛选数据,javascript,mysql,node.js,database,sequelize.js,Javascript,Mysql,Node.js,Database,Sequelize.js,我有这样一种方法: const getAllRequest=async(页面、页面大小、顺序)=>{ 试一试{ const requests=wait Request.findAndCountAll({ 其中={ [点评]:[ sequelize.where(sequelize.col('requests.id'),{[Op.like]:`%${req.query.queryStr}%`}), sequelize.where(sequelize.col('requests.user_id'),{

我有这样一种方法:

const getAllRequest=async(页面、页面大小、顺序)=>{
试一试{
const requests=wait Request.findAndCountAll({
其中={
[点评]:[
sequelize.where(sequelize.col('requests.id'),{[Op.like]:`%${req.query.queryStr}%`}),
sequelize.where(sequelize.col('requests.user_id'),{[Op.like]:`%${req.query.queryStr}%`}),
其中(sequelize.col('requests.uuid'),{[Op.like]:`%${req.query.queryStr}%`}),
sequelize.where(sequelize.col('requests.status'),{[Op.like]:`%${req.query.queryStr}%`}),
sequelize.where(sequelize.col('requests.csv_url'),{[Op.like]:`%${req.query.queryStr}%`}),
sequelize.where(sequelize.col('request_url.url'),{[Op.like]:`%${req.query.queryStr}%`}),
]
},
raw:是的,
属性:['id','uuid','userId','status','csvUrl','requestURLs.url','createdAt','updatedAt'],
包括:[{
型号:RequestUrl,
as:“请求URL”,
其中:{type:'brand'},
属性:[]
}],
子查询:false,
偏移量:页面*页面大小,
限制:页面大小,
秩序
});
返回{
现状:200,
信息:“请求列表。”,
请求
}
}捕获(错误){
回绝({
现状:500,
信息:“出了点问题。”,
错误
});
}
}
但如果尝试使用包含的模型属性进行过滤,则不会返回数据。相反,它返回:

错误:“where子句”中的未知列“request\u url.url”


请帮我弄清楚这一点。

注意区别:请求URL作为:“请求URL”注意区别:请求URL作为:“请求URL”

您的
条件应该如下-

 where = {
                [Op.or]: [
                    sequelize.where(sequelize.col('requests.id'), { [Op.like]: `%${req.query.queryStr}%` }),
                    sequelize.where(sequelize.col('requests.user_id'), { [Op.like]: `%${req.query.queryStr}%` }),
                    sequelize.where(sequelize.col('requests.uuid'), { [Op.like]: `%${req.query.queryStr}%` }),
                    sequelize.where(sequelize.col('requests.status'), { [Op.like]: `%${req.query.queryStr}%` }),
                    sequelize.where(sequelize.col('requests.csv_url'), { [Op.like]: `%${req.query.queryStr}%` }),
                    sequelize.where(sequelize.col('requestURLs.url'), { [Op.like]: `%${req.query.queryStr}%` }),
                ]
            },

我希望有帮助

您的
其中
条件应如下所示-

 where = {
                [Op.or]: [
                    sequelize.where(sequelize.col('requests.id'), { [Op.like]: `%${req.query.queryStr}%` }),
                    sequelize.where(sequelize.col('requests.user_id'), { [Op.like]: `%${req.query.queryStr}%` }),
                    sequelize.where(sequelize.col('requests.uuid'), { [Op.like]: `%${req.query.queryStr}%` }),
                    sequelize.where(sequelize.col('requests.status'), { [Op.like]: `%${req.query.queryStr}%` }),
                    sequelize.where(sequelize.col('requests.csv_url'), { [Op.like]: `%${req.query.queryStr}%` }),
                    sequelize.where(sequelize.col('requestURLs.url'), { [Op.like]: `%${req.query.queryStr}%` }),
                ]
            },

我希望有帮助

这只是一个别名OK,删除带有此字段的条件并显示结果SQL queryyou应该将其指向where条件,即我正在使用别名并仍然使用表名而不是别名引用数据。这只是一个别名OK,删除带有此字段的条件并显示结果SQL queryyou应该将其指向where条件,即我正在使用别名并仍然使用表名而不是别名引用数据。