【问题标题】:NodeJS MySQL Update If NullNodeJS MySQL更新如果为空
【发布时间】:2021-11-07 06:57:24
【问题描述】:

我将 MySQL 与 NodeJS 一起使用,而且我还很新。

如果 col 值为 null,我想更新 col 值,否则更新另一个 col。

就像这样:如果 col1 为 null 则更新 else 更新 col2。

    app.post('/api/update', (req, res) => {
        const convidn = req.body.conversationid
        const currentuser = req.body.current
     
    
       var sql = "UPDATE messages SET whodeleted='"+currentuser+"' WHERE converid = '" + convidn + "'";

这会覆盖列值。如果“whodeleted”不为空,我只想更新“whodeleted2”列。

        db.query(sql, (err, result) => {
            if (err) throw err;
            console.log("Number of records deleted: " + result.affectedRows);
        });
    })

【问题讨论】:

    标签: mysql sql node.js


    【解决方案1】:

    你可以这样做

    但是您的代码对于 sql 注入易受攻击的,请阅读Preventing SQL injection in Node.js 以了解如何避免它

    UPDATE messages 
    SET 
        whodeleted = CASE
            WHEN whodeleted IS NULL THEN ?
            ELSE whodeleted
        END,
        col2 = CASE
            WHEN whodeleted IS NULL THEN col2
            ELSE 'test'
        END
    WHERE
        converid = ?
    

    【讨论】:

    猜你喜欢
    • 2018-02-02
    • 1970-01-01
    • 2016-03-03
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 2016-01-13
    相关资源
    最近更新 更多