likes
comments
collection
share

sql查询数据总条数后怎么接收count(1)或者count(*)的值?

作者站长头像
站长
· 阅读数 32

昨天在写项目时,利用nodejs部署的服务器去查询数据库中所有数据的条数时,出现一个问题,那就是给我返回了一个前端无法接收的字段。

// sql语句是这样的
const sql = 'select count(1) from products'

// nodejs中发送的代码是这样的
res.send({
  status: 200,
  msg: '获取所有数据的条数',
  result
})

当我在前端请求时发现,给我返回的result字段中,键竟然是count(1),如果去引用的话,JavaScript代码会自动将其视为函数的调用,所以会直接报错count is not a function,后来去网上查了一下关于这个问题,虽然没直接找到,但是我发现了一个方法(还是对sql语句不熟悉,看来抽时间要好好学学sql语句了),那就是将上边的sql语句改为:

const sql = 'select count(1) as result from products'

这样就可以了,将count(1)的值存储进result中,然后利用es6的键值对简写方式就可以获取到了,如果as后换成其他变量名,那么发送数据时就应该写成result: 其他变量名了,在前端请求并获取到的数据就是一个正常的键名result了,对应的就是总条数的值。