Jav*_*nov 2 mysql mariadb node.js express
这就是我查询更新行的方式,它的工作原理是:
const [rows, meta] = await db.query(
`
UPDATE
Portfolio
SET
title = ?,
infoText = ?,
devPeriod = ?,
tags = ?
WHERE
id = ?
`,
[title, infoText, Number(devPeriod), tags, Number(portfolioId)]
);
return rows;
Run Code Online (Sandbox Code Playgroud)
但有时根据用户的需要,我必须查询以仅更新特定列。例如,用户可能只想编辑 devPeriod 或标签和 infoText。我怎样才能做到这一点?
我建议创建一个更新对象来指定要更新的字段和相关值。然后您可以从中创建查询和参数。
可以基于用户输入来填充更新对象。
例如:
async function updatePortfolio(db, portfolioId, update) {
const query = "Update Portfolio SET " + Object.keys(update).map(key => `${key} = ?`).join(", ") + " WHERE id = ?";
const parameters = [...Object.values(update), portfolioId];
console.log("updatePortfolio: Running query:", query);
const [rows, meta] = await db.query(query, parameters);
return rows;
}
// Add or remove fields as you require.
update = {
title: "Some Title",
infoText: "Infotext",
devPeriod: 10,
tags: "tags"
}
updatePortfolio(db, 1, update);
// Add or remove fields as you require.
update = {
title: "Some Title",
tags: "tags"
}
updatePortfolio(db, 2, update);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4696 次 |
| 最近记录: |