connection.query("UPDATE table SET columnA = valA WHERE columnB = valB;",
function(err, rows, fields) {
..some code..
}
我如何在NodeJS中获得受影响行的数据。
如果是SELECT
查询,我可以这样做
sql = rows[0];
id = sql.id;
我知道有rows.affectedRows
和rows.changedRows
但它只给出了受影响的行数而不是数据
在语句执行之后,没有保存这些信息的属性。您需要通过扩展语句来帮助自己记录这些信息。
SET @uids := '';
UPDATE table
SET columnA = valA
WHERE columnB = valB
AND ( SELECT @uids := CONCAT_WS(',', @uids, id) );
SELECT TRIM(LEADING ',' FROM @uids);
在@uid中有更新的行id。
另一种方法是首先使用WHERE子句执行select语句(WHERE columnB = valB
)。你得到了更新的行。您可以存储id,然后只在给定的id (WHERE id IN ({yourIdSet})
)上运行更新。