mysql - 当行值不等于特定值时更新表
问题描述
我有一个这样的对象
{ 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}`;
解决方案
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
// ...
}
推荐阅读
- python - 如何以组织图表的方式绘制有向图?
- android - 如何修复“活动已泄漏 ServiceConnection net.openid.appauth.browser.CustomTabManager$1@41fb56d0 最初绑定在这里”错误
- scroll - 试图限制手风琴内动态生成的行列表以滚动显示在固定高度的卡片中
- ajax - Ajax 在位置 0 的 JSON 中得到错误解析错误和 Unexpected token <?
- android - 无法将 JSONObject 转换为 JSONArray
- c# - 当我在 getresponsedata 上设置断点时,代码运行良好,但没有断点则无法运行
- javascript - 如何将 React Native 自定义警报作为函数调用?
- javascript - 每个调用方法的 Javascript 计数器
- python - 添加具有另一列和cumsum的字符串长度的列?
- javascript - 事件冒泡如何在事件处理中起作用?