【问题标题】:count with where query to code by use sequelize使用 sequelize 计算 where 查询编码
【发布时间】:2020-12-22 16:19:28
【问题描述】:

我想通过使用 sequelize 将此查询更改为代码,并且 node.js 取决于位置

select COUNT(gender) as genderCount from customers where gender = "male"

但我不知道如何添加到哪里

这个原始代码:

 Customer.findAll({
      attributes: { 
        include: [[Sequelize.fn("COUNT", Sequelize.col("gender")), "genderCount"]]  }
      }).then(data => {
      res.send(data)
    })

【问题讨论】:

  • 您有两个问题。 “再算一次”是什么样子的?需要更多细节和重点
  • select COUNT(gender) as genderCount from customers where gender="male" query to code

标签: sql node.js sequelize.js


【解决方案1】:

对于"sequelize": "^5.21.3"

选项 1。

const customers = await Customer.findAll({
    attributes: [[Sequelize.fn('COUNT', Sequelize.col('gender')), 'genderCount']],
    where: {
      gender: 'male',
    },
    raw: true,
});

执行结果:

Executing (default): SELECT COUNT("gender") AS "genderCount" FROM "customers" AS "Customer" WHERE "Customer"."gender" = 'male';
[ { genderCount: '3' } ]

选项2。您可以使用Model.count()

计算与提供的 where 子句匹配的记录数。

const customers = await Customer.count({ col: 'gender', where: { gender: 'male' } });

执行结果:

Executing (default): SELECT count("gender") AS "count" FROM "customers" AS "Customer" WHERE "Customer"."gender" = 'male';

以上示例基于数据库中的数据记录:

【讨论】:

  • 选项 1 正是我所做的,但选项 2 对我来说是新的非常感谢您的回答,我很感激
【解决方案2】:

我从查询中解决它:

select COUNT(gender) as genderCount from customers where gender = "male"

代码续集:

await   Customer.findAll({
  attributes: { 
    include: [[Sequelize.fn("COUNT", Sequelize.col('gender')), "genderCount"]] ,  
  },
  where:[{"gender":'male'}]
  }).then(data => {
  res.send(data)
})

【讨论】:

    猜你喜欢
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 2019-08-01
    相关资源
    最近更新 更多