You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL执行UPDATE更新字段为另一字段值的语句不生效问题

SQL更新语句未生效原因解析

核心问题

你的语句中WHERE user_stock1 = NULL的条件永远无法匹配到任何行。
SQL规范明确规定:任何值与NULL进行=、!=、>、<等普通比较运算,返回结果都是UNKNOWN,而WHERE条件只会执行返回结果为TRUE的行,所以这条更新语句不会命中任何数据,自然没有更新效果。

修复方案

将=替换为专门用于NULL值判断的IS NULL运算符即可,修改后的正确语句如下:

UPDATE user_stock SET user_stock1 = user_stock2 
WHERE user_stock1 IS NULL AND user_id = 'mike';

补充说明

  • 即便是NULL = NULL的等值判断,返回结果也是UNKNOWN,只有IS NULL可以正确识别值为NULL的记录
  • 部分数据库支持IS NOT DISTINCT FROM语法实现NULL的等值匹配,但IS NULL是所有SQL数据库都兼容的通用写法,优先推荐使用

内容的提问来源于stack exchange,提问作者M Shakespeare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 18:30:05