【问题标题】:How do I do boolean logic on two columns in MySql, one of which is a Varchar?如何在 MySql 中的两列上执行布尔逻辑,其中一列是 Varchar?
【发布时间】:2010-09-19 21:50:48
【问题描述】:

这是this question的续集。

我想在 MySql 选择中将三列合并为一列。前两列是布尔值,第三列是字符串,有时为空。这会导致奇怪的结果:

Select *, (payment1_paid && ((payment2_paid || payment2_type ="none"))) as paid_in_full from payments 

注意:payment1_paid 是布尔值,payment2_paid 是布尔值,payment2_type 是 varchar。

注意:请忽略这张表的结构多么荒谬。每一段糟糕的代码背后都有一个很长的解释:)

编辑: 对于 varchar 值,我对 Null 不感兴趣。我只想知道是不是真的“无”。

提前感谢您的帮助!

【问题讨论】:

    标签: mysql select field


    【解决方案1】:

    如果 null 对你不感兴趣,那么:

    Select *, 
          (payment1_paid && ((payment2_paid || (payment_type IS NOT NULL && payment_type="none"))) 
             as paid_in_full 
    from payments
    

    祝你好运!

    【讨论】:

      【解决方案2】:

      我猜你想让 NULL 为假?试试(payment_paid IS NULL || payment2_type = "none")

      【讨论】:

        【解决方案3】:
        Select *, 
              (payment1_paid && ((payment2_paid || coalesce(payment2_type,"null") ="none"))) 
                 as paid_in_full 
        from payments
        

        【讨论】:

          猜你喜欢
          • 2010-09-19
          • 2020-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-20
          • 2011-02-15
          相关资源
          最近更新 更多