我想使用 knex 和 MySQL 进行计数并将计数值保存到变量中。下面是我的代码片段。我使用 postman 来请求
router.post('/insertNewProject', (req, res) => {
knex
.raw('SELECT COUNT(id_proj) FROM project WHERE projectName=?', [req.body.projectName])
.then((count) => {
res.json(count[0])
})
.catch(() => {
res.json({ success: false, message: "Please try again later." })
})
})
这将返回我:
[
{
"COUNT(id_proj)": 0 //or 1 of the record is in table
}
]
我的问题是如何将结果存储到变量中?根据 select count
的结果,我希望如果它是 =0
则执行一次查询,如果它大于 0,则执行另一次查询。感谢您的宝贵时间!
最佳答案
您的 knex 查询中可能有错误,试试这个:
router.post('/insertNewProject', async (req, res) => {
const result = await knex('project')
.count('id_proj as count')
.where({projectName: req.body.projectName})
.first()
.catch(() => res.json({
success: false,
message: "Please try again later."
}));
if (result.count === 0) {
// Perform some query
return res.json({/* Some response */});
} else {
// Perform another query
return res.json({/* Some response */});
}
});
关于mysql - 使用 mysql 和 knex 将 SELECT COUNT 保存到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52623828/