0

我在 eshop 中有一张产品表(id, stock, availability,....),到目前为止,我的业务逻辑是:

产品在以下情况下可用:

  • 如果可用性=0 并且库存>0
  • 如果可用性>0 并且库存>=0

我使用可用性来通知客户购买后将发货的天数,我设置可用性 = 0 以确定产品仅在库存 > 0 时可用。这样,当我设置可用性 = 0 和库存时=0 产品将因此变得不可用。

我不确定是否

select * from product where (availability=0 and stock>0) or (availability>0 and stock>=0)

会起作用的,这似乎很简单。有什么想法吗?

4

2 回答 2

1

在您的情况下使用它:

select *from products where availability>=0 and stock>0
于 2012-05-08T16:02:14.960 回答
0

您可以通过组合它们来简化这一点,因为两者都在检查 stock>0

Select * from product where stock>0;

这是因为只要库存 > 0,可用性几乎无关紧要。当您指定的 stock = 0 时它仍然不可用,但是您说它应该在可用性 = 0 和 >0 时可见,只要 stock > 0。假设您没有使可用性 <0 您不需要将其包含在您的查询中。

于 2012-05-08T16:02:22.707 回答