我有两张桌子。销售和产品列表。两个表中存在的一些数据是相同的。所以我想要做的是更新tbl productlist中的选定字段,其中tbl prodctlist数据存在于tbl sales中。我在下面使用了下面的查询,但问题是,如果来自produclist的数据在sales中不存在,它就会变成null。我正在寻找的是,如果tbl productlist中的数据在tbl sales中不存在,它不会变成null,而是在更新之前保持不变。
mysql_query("UPDATE productlist
SET pleft=pleft+(SELECT SUM(qty) FROM sales
WHERE (sales.name = productlist.pdesc)
AND (sales.name1 = productlist.pdesc1))"); 发布于 2013-10-10 03:09:39
您想要使用COALESCE,它接受第一个非空值:
SELECT SUM(COALESCE(qty, 0)) ...发布于 2013-10-10 03:45:31
您可以使用IFNULL函数:
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字段可以为空,最好有:
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)"); https://stackoverflow.com/questions/19280510
复制相似问题