[英]Update multiple columns for a user - postgresql and nodejs
我很欣賞這個問題已經被討論過很多次了,但似乎無法使其適用於我的情況,我只是沒有正確理解語法或實現。
現在,我有一個非常簡單的更新方法,可以更新1列,並通過其ID查找該用戶
User.update = (id, value) => {
pool.query('UPDATE users SET membership_expiry_date = $2 where id = $1', [id, value], (err) => {
if (err) {
return console.error(err);
}
return console.log('User Updated');
});
};
await User.update(req.body.user_id, "value");
我有多個列想要更新,但不確定如何設置。 每次我更新時,根據要更新的信息,我可以有不同數量的列來更新
您可以將要傳遞的列作為對象傳遞,並動態構建查詢。
User.update = (id, values) => {
let columns = Object.keys(values);
let params = [id];
let query = "UPDATE users SET ";
for(let i = 0; i < columns.length; i++) {
query = `${query}${columns[i]} = $${params.length + 1},`
params.push(values[columns[i]]);
}
query = `${query.substring(0, query.length-1)} WHERE id = $1`
console.log(query);
console.log(params)
};
await User.update("req.body.user_id", {columnToUpdate: "newValue"});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.