簡體   English   中英

為用戶更新多個列-Postgresql和Node.js

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM