首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新时转换为空值

问更新时转换为空值
EN

Stack Overflow用户
提问于 2013-10-10 03:07:30
回答 2查看 62关注 0票数 0

我有两张桌子。销售和产品列表。两个表中存在的一些数据是相同的。所以我想要做的是更新tbl productlist中的选定字段,其中tbl prodctlist数据存在于tbl sales中。我在下面使用了下面的查询,但问题是,如果来自produclist的数据在sales中不存在,它就会变成null。我正在寻找的是,如果tbl productlist中的数据在tbl sales中不存在,它不会变成null,而是在更新之前保持不变。

代码语言:javascript
复制
mysql_query("UPDATE productlist 
SET pleft=pleft+(SELECT SUM(qty) FROM sales 
WHERE (sales.name = productlist.pdesc) 
AND (sales.name1 = productlist.pdesc1))"); 
EN

回答 2

Stack Overflow用户

发布于 2013-10-10 03:09:39

您想要使用COALESCE,它接受第一个非空值:

代码语言:javascript
复制
SELECT SUM(COALESCE(qty, 0)) ...
票数 0
EN

Stack Overflow用户

发布于 2013-10-10 03:45:31

您可以使用IFNULL函数:

代码语言:javascript
复制
mysql_query("UPDATE productlist SET pleft=pleft + IFNULL( (SELECT SUM(qty) FROM sales WHERE (sales.name = productlist.pdesc) AND (sales.name1 = productlist.pdesc1), 0)"); 

另外,如果qty字段可以为空,最好有:

代码语言:javascript
复制
mysql_query("UPDATE productlist SET pleft=pleft + IFNULL( (SELECT SUM(IFNULL(qty,0)) FROM sales WHERE (sales.name = productlist.pdesc) AND (sales.name1 = productlist.pdesc1), 0)"); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19280510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档