在MySQL中,如果"total"字段为空,有没有办法将其设置为零?

以下是我所拥有的:

SELECT uo.order_id, uo.order_total, uo.order_status,
            (SELECT SUM(uop.price * uop.qty) 
             FROM uc_order_products uop 
             WHERE uo.order_id = uop.order_id
            ) AS products_subtotal,
            (SELECT SUM(upr.amount) 
             FROM uc_payment_receipts upr 
             WHERE uo.order_id = upr.order_id
            ) AS payment_received,
            (SELECT SUM(uoli.amount) 
             FROM uc_order_line_items uoli 
             WHERE uo.order_id = uoli.order_id
            ) AS line_item_subtotal
            FROM uc_orders uo
            WHERE uo.order_status NOT IN ("future", "canceled")
            AND uo.uid = 4172;

除了空字段应为0之外,数据显示良好.

如何在MySQL中为NULL返回0?

推荐答案

使用IFNULL:

IFNULL(expr1, 0)

从文件中:

如果expr1不为NULL,则IFNULL()返回expr1;否则返回expr2.IFNULL()返回一个数值或字符串值,具体取决于使用它的上下文.

Mysql相关问答推荐

如何在SQLAchemy for MYSQL中将字面量转换为表达?

如何在逗号分隔字符串值中使用LEFT函数

用于搜索从各种表中获得的结果的查询

无法删除或更新父行:外键约束无法删除表

Laravel DB::Transaction()

为什么我的带有索引字段和非索引字段的 Select 有时需要很长时间

仅获取我不是最后一个 comments 者的博客帖子

带有 JOIN 和 WHERE 子句的 INSERT 语句

是否可以使用 IN 或 NOT IN 从没有关联其他表中任何行的表中返回这些名称?

SQL 查询仅当成员共享确切值时才 Select 成员对

Select 并统计所有条目并根据条目对它们进行分组

如何使用减号运算符编写 sql 查询以返回缺少相应值的行?

如何将结果列中的不同值按其他列sql中的值带入单行

在 Codeigniter MySQL 中从另一个数据库获取数据

谁能帮我优化where子句

为什么一个 10 位的电话号码不能存储在长度为 10 的整数中?

从终端访问 MAMP 的 MySQL

如何将时刻 JS 时间插入 MySQL

使用 PHP 和 MySQL 存储和显示 unicode 字符串 (हिन्दी)

如何改进 INSERT INTO ... SELECT 锁定行为