在子查询中后缀“ WHERE”子句

时间:2018-07-05 08:04:32

标签: javascript node.js reactjs sequelize.js backend

我正在尝试使用sequelize构建查询,在where子句中,我需要从前端提供条件值,所以我做到了:

getResults(req) {
            return parm
                .findAll({
                    attributes: [
                        sequelize.literal('DISTINCT "id"')
                    ],
                    where :  {
                        name: req.query.parm.replace(/"/g, '').split(',')
                    } ,            
                    raw: true
                });

        }

它正在工作! 但是现在我需要编写一个包含where子句的子查询: 像这样的东西:

SELECT tab1.name FROM
(SELECT name FROM "MYTABLE"
WHERE id = (value from the front-end) AND name IN (values from front-end)
) as tab1

这是我尝试过的:

    getTest(req) { 
if (req.query.parm != null) {
 return parm .sequelize.query('SELECT id FROM "table_base" where id = $mid ); ',
 { type: sequelize.QueryTypes.SELECT , 
   bind: { mid: [req.query.parm.replace(/"/g, '').split(',')] }} ); 
} 
},

我尝试使用原始查询,并测试了绑定参数,但执行此测试查询时出现此错误:

Executing (default): SELECT id FROM "table_base" where id = $1 ); 

1 个答案:

答案 0 :(得分:0)

您的问题的答案是肯定的,的确有可能!即使使用sequelize,SQL几乎可以做任何事情。如果您编写了子查询,但该子查询不起作用,只需将其重新发布回此处,以便人们进行查看和调试。谢谢