如何 return 仅使用计数?
How to return only number using count?
我正在使用 knex
,我只想 return 数字而不是 RowDataPacket
,这是我的代码:
let totalUsers = await ctx.db('user')
.join('group', 'user.id', 'group.user_id')
.where('user.first_name', 'like', '%' + firstName + '%')
.count()
.first();
console.log(totalUsers);
本质上是这个 returns:
RowDataPacket { 'count(*)': 1 }
我只想得到1
,我该怎么做?
我很确定您可以使用它来获取计数值:
let count = totalUsers["count(*)"];
我还认为不同 DBRMS 的驱动程序会 return 计数变量的不同名称。例如,对于 SQL 服务器,当我尝试时,计数字段没有正确的名称,只有 ''
。所以为了让它在所有 SQL 方言中工作,我会在 SQL 查询中给计数一个别名,像这样:
.count('* AS c')
然后您可以像这样访问它:
let count = totalUsers["c"];
我正在使用 knex
,我只想 return 数字而不是 RowDataPacket
,这是我的代码:
let totalUsers = await ctx.db('user')
.join('group', 'user.id', 'group.user_id')
.where('user.first_name', 'like', '%' + firstName + '%')
.count()
.first();
console.log(totalUsers);
本质上是这个 returns:
RowDataPacket { 'count(*)': 1 }
我只想得到1
,我该怎么做?
我很确定您可以使用它来获取计数值:
let count = totalUsers["count(*)"];
我还认为不同 DBRMS 的驱动程序会 return 计数变量的不同名称。例如,对于 SQL 服务器,当我尝试时,计数字段没有正确的名称,只有 ''
。所以为了让它在所有 SQL 方言中工作,我会在 SQL 查询中给计数一个别名,像这样:
.count('* AS c')
然后您可以像这样访问它:
let count = totalUsers["c"];