微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node.js 中 SQL 删除查询的动态列

如何解决Node.js 中 SQL 删除查询的动态列

所以,我的数据库中有“N”个表,每个表都有不同的列,包含不同类型的数据。

我可以根据“table_name”从每个表中提取所有数据,但是现在单击行时我想删除它。

假设我可以像这样提取数据并将其发送到服务器。

{["colA":"a1","colB":"a2","colC":"a3",...]}

table.jsx我有


  const deleteData = async (event,parameters) => {
    event.preventDefault();
    // parameters = {["colA":"a1",...]}
    let params = JSON.stringify(parameters);

    var config = {
      headers: { "Content-Type": "application/json",Accept: "/" },};
    const res = await axios
      .post(
        `http://localhost:3080/delete/${table_name}/${params}`,config
      )
      .then((response) => {
        console.log(response);
      })
      .catch((error) => {
        let errorObject = JSON.parse(JSON.stringify(error));
        console.log(errorObject.message);
      });
  };

但是在 server.js 中,我无法弄清楚如何实现它以适用于每个表中的任何行,而不是列的类型。


router.post("/delete/:table/:columns",function (req,res) {
  let tableName = req.params.table;
  let table = JSON.parse(req.params.columns);

  let querysql = `DELETE FROM ${tableName} WHERE ${Object.entries(table).map(
    ([key,value]) => {
      return `${key} = '${value}'`;
    }
  )};`;

  mssql.connect(dbConfig,function (err) {
    var request = new mssql.Request();
    request.query(querysql,function (err,results) {
      if (err) {
        return res.status(500).json({ type: "error",message: "error" });
        return res.send(err);
      } else {
        res.send({ message: "SUCCESS" });
      }
      mssql.close();
    });
  });
});

我想执行它:DELETE FROM TABLE1 WHERE colA = "a1" AND colB = "a2" AND colC = "a3" 等等..但应该可用于任何表。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。