nodejs 使用 sequelize 查 mysql 报错

学习和使用nodejs的 sequelize 查询数据库时报错,查了很多资料,由于 对 sql 不了解, 不知道是什么原因导致的, 请各位大佬指教

数据库数据

image

执行的代码

app.get( '/all', async ( req, res, next ) => {
  // console.log( typeof models.Sequelize.fn );
  let all = await models.Todo.findAll({
    attributes: [ 
      'content', 'name', 'status', 'id', 'deadline',
      [ models.sequelize.fn( 'COUNT', models.sequelize.col('content') ), 'contents' ] 
    ]
  });

  res.json({
    data: {
      ...all
    },
    code: 200,
    message: '查询成功'
  });

});

报错信息

image

问题二

如图所示 使用 pm2 list 展示的信息
其中对于 user 的来源甚是费解, 不知道这个 user 是读取了什么的信息, 请大佬指点
image

阅读 3.3k
1 个回答

上面报错翻译成中文的意思是:
"在没有group by的聚合查询中,使用conut聚合函数,与模式ONLY_FULL_GROUP_BY不符"
换句话说,也就是启用了ONLY_FULL_GROUP_BY模式之后,只要有聚合函数 sum(),count(),max(),avg() 等函数就需要用到group by,没有就会报错。
所以最好的办法是加上group by id(一定要为主键的字段,非主键会报错。)

可以看看这个网址
https://stackoverflow.com/que...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进