nodejs 使用 mysql2插件 的SQL预处理语句 node代码发生报错

nodejs 使用 mysql2插件 的SQL预处理语句 node代码发生报错
如果问号 直接换成具体数据 或者字符串拼接是没问题的
之前的查询 都是正常的 就是这条查询报错

      const aqls = `SELECT 
      ANY_VALUE(user.id),
      user.name AS name,
      JSON_ARRAYAGG(JSON_OBJECT("id", pl.id, "userid", pl.userid, "gg", pl.plc, "userName", pl.userName)) AS pls
      FROM user
      LEFT JOIN pl ON user.id = pl.userid
      WHERE pl.userid= ?;`;
      console.log([userids]);
      const res = await connectionExecute.execute(aqls, [userids]); //531
      console.log(res);

img

想知道是我语句错了还是其他原因和解决方法?

In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'demo.user.name'; this is incompatible with sql_mode=only_full_group_by

可以尝试把user.id 改成 ANY_VALUE(user.id),用ANY_VALUE是因为在GROUP BY子句中,只能使用聚合函数,也就是说不能使用user.id。

MySQL2错误通常是由于SQL语句语法错误或参数类型不匹配引起的。因此,在使用MySQL2预处理语句时,需要格外注意以下几点:

1.SQL语句语法:请确保SQL语句的语法正确,特别是在使用预处理语句时需要注意的参数占位符的语法。

2.参数类型:请确保参数的类型与SQL语句中的占位符类型匹配。如果不匹配,可能会导致报错。

3.参数数量:请确保SQL语句中的占位符个数与传递给预处理语句的参数个数相同。

4.数据库连接:请确保数据库连接正常,特别是在执行预处理语句前请确保数据库已连接。

如果您能够提供错误消息或代码,我将更有助于帮助您解决问题。