【问题标题】:Mysql - a little help on my business logicMysql - 对我的业务逻辑有一点帮助
【发布时间】:2012-05-09 00:41:23
【问题描述】:

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

产品在以下情况下可用:

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

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

我不确定

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

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

【问题讨论】:

  • 你不是说availability>0 or stock>0吗?
  • 这是两个不同案例的组合
  • 对,应该是avilability > 0 and stock > 0
  • 请再读一遍我的问题,你错过了我的意思。只要 stock>0,可用性可以为 0
  • 知道了,在这种情况下,您的查询对我来说看起来不错。

标签: mysql


【解决方案1】:

在你的情况下使用它:

select *from products where availability>=0 and stock>0

【讨论】:

    【解决方案2】:

    您可以通过组合它们来简化此操作,因为两者都在检查库存>0

    Select * from product where stock>0;
    

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

    【讨论】:

    • 使用 OR 是不正确的,它会显示库存为 0 但可用性>=0 的产品。你需要使用 AND
    • @Developer:只要有货(availabilty>0),我就允许订购 stock=0 的产品
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2010-12-14
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多