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);
想知道是我语句错了还是其他原因和解决方法?
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.数据库连接:请确保数据库连接正常,特别是在执行预处理语句前请确保数据库已连接。
如果您能够提供错误消息或代码,我将更有助于帮助您解决问题。