我有一个订单实体,在执行工作时会运行一些状态。每次请求页面时,后端都会返回所有当前可能或可能不可用的关联数据,如JSON。
基本上,它与请求的URL相同,但是根据订单状态切换模板,后端始终运行相同的方法来检索数据。根据订单状态,某些数据可能为空。
因此,例如,预订是一种状态,表明订单尚未最终确定以进行处理。因此,没有进行任何工作。如上所述,假设后端始终运行相同的查询来获取数据。它可能会返回“order_information”,“work_performed”和“comments”。一般来说,即使在预订中无法执行任何工作,执行“work_performed”查询也会造成损失或成本高昂吗?它当然总是在预订阶段返回null。提交订单后,最终会有订单数据,这样我就不必在后端写入额外的逻辑。并不是说编写它是一件麻烦事,但如果没有必要,那么它会使代码更短。
否则,我想我只需要在后端有条件地返回数据。
答案 0 :(得分:0)
如果结果集中的字段可能为空值
,则可以使用COALESCE以这三个为例
COALESCE(MAX(bids.gold_bid),0) AS max_bid
在此示例中,如果bid.gold_bid的最大值没有值(null),则返回0作为max_bid的值
COALESCE(bidder.name,'No Bidders') AS highest_bidder
在此示例中,如果没有人对该项目进行投标,则会返回“无投标人”作为出价最高者的名称
COALESCE(COUNT(bids.gold_bid),0) AS number_of_bids
在此示例中,如果未找到出价(空值),则返回0作为出价数