簡體   English   中英

如何計算表中的行數?

[英]How to count the number of rows in a table?

我在 node.js 中使用 sequelize。 目前我可以搜索多個表並將結果作為數據生成。 我已經使用以下代碼這樣做了:

router.get("/alldata", (req, res) => 

Promise.all([chemical_bays.findAll(), electricals.findAll(), fire_services.findAll(), instruments.findAll(), mechanicals.findAll(), microwaves.findAll(), tools.findAll(), water_cays.findAll(), buildings.findAll(), substations.findAll(), fences_gates_cctv.findAll(), steam_plant_other.findAll(), information_technology.findAll(), ])
.then((data) => {  res.render('gigs', {gigs: [...data[0], ...data[1], ...data[2], ...data[3], ...data[4], ...data[5], ...data[6], ...data[7], ...data[8], ...data[9], ...data[10], ...data[11], ...data[12]] }) }).catch(err => console.log(err)));

但是,我現在希望計算結果並顯示它們,但是,如果我使用聚合屬性“count”,則會收到錯誤消息。 這是我嘗試使用的代碼:

router.get("/alldata", (req, res) => Promise.all([chemical_bays.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['chemical_bays.id'],
raw: true,
order: sequelize.literal('count DESC')}), electricals.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['electricals.id'],
raw: true,
order: sequelize.literal('count DESC')}), fire_services.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['fire_services.id'],
raw: true,
order: sequelize.literal('count DESC')}), instruments.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['instruments.id'],
raw: true,
order: sequelize.literal('count DESC')}), mechanicals.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['mechanicals.id'],
raw: true,
order: sequelize.literal('count DESC')}), microwaves.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['microwaves.id'],
raw: true,
order: sequelize.literal('count DESC')}), tools.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['tools.id'],
raw: true,
order: sequelize.literal('count DESC')}), water_cays.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['water_cays.id'],
raw: true,
order: sequelize.literal('count DESC')}), buildings.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['buildings.id'],
raw: true,
order: sequelize.literal('count DESC')}), substations.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['substations.id'],
raw: true,
order: sequelize.literal('count DESC')}), fences_gates_cctv.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['fences_gates_cctv.id'],
raw: true,
order: sequelize.literal('count DESC')}), steam_plant_other.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['steam_plant_other.id'],
raw: true,
order: sequelize.literal('count DESC')}), information_technology.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['information_technology.id'],
raw: true,
order: sequelize.literal('count DESC')}), ])
.then((data) => {res.render('gigs', {
    //gigs:data[0],
    //gigs2:data[1] 
    gigs: [...data[0], ...data[1], ...data[2], ...data[3], ...data[4], ...data[5], ...data[6], ...data[7], ...data[8], ...data[9], ...data[10], ...data[11], ...data[12]]
   })   
  })
  .catch(err => console.log(err)));

嘗試添加:

logging: console.log()

在您的選項中(與原始級別相同)。 這將在應用程序的日志中打印 MySQL 查詢。 然后,您可以嘗試在 MySQL Workbench 或 PHPMyAdmin 中運行相同的查詢,看看是否有明確的錯誤消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM