首页 > 解决方案 > 当行值不等于特定值时更新表

问题描述

我有一个这样的对象

{ emId: '1', emEmail: 'sreepurna@xxx.com' }

我在后端使用nodejs,在数据库中使用mysql。我只想在我的值不等于特定值时更新表。有没有可能在查询中写这个。

我尝试了几个 sql 语句,但它不起作用:

let sql = `UPDATE details SET name = CASE WHEN '${req.body.emName}' != 'hi' THEN ${req.body.emName} END where id=${req.body.emId}`;

标签: mysqlsqlnode.js

解决方案


SQL 语言中没有这种东西undefined,你必须通过 JavaScript 验证你的值

if(req.body.emName){
  // This code block will run when req.body.emName contains value and is not undefined or null
  let sql = `UPDATE details SET name = CASE WHEN '${req.body.emName}' THEN ${req.body.emName} END where id=${req.body.emId}`;
}else{
  // req.body.emName is either empty/undefined or null
  // ...
}


推荐阅读