【问题标题】:mysql set value to empty if specific field is not empty如果特定字段不为空,mysql将值设置为空
【发布时间】:2015-07-10 00:44:50
【问题描述】:

我已经创建了这个 sql 选择查询:

SELECT subscription_new_projects.banners, subscription_new_projects.banner_link
FROM subscription_new_projects
WHERE be_famous_id =32
AND now( ) < end_date
ORDER BY subscription_new_projects_id DESC

并得到这个 sql 结果:

现在我想将banners 字段设置为空,如果banner_link 不为空。

我想要这个结果:

我的 SQL 小提琴:Example

知道怎么做吗?

谢谢。

【问题讨论】:

    标签: mysql sql database select


    【解决方案1】:

    您可以使用case-when

    SELECT 
    case 
    when 
      subscription_new_projects.banner_link <> '' then '' 
      else subscription_new_projects.banners 
    end as banners,  
    subscription_new_projects.banner_link
    FROM subscription_new_projects
    WHERE be_famous_id =32
    AND now( ) < end_date
    ORDER BY subscription_new_projects_id DESC
    

    【讨论】:

    • 非常适合我。谢谢:)
    【解决方案2】:

    使用CASEstatement。

    查询

    SELECT 
    CASE WHEN subscription_new_projects.banner_link != ''
    THEN NULL 
    ELSE subscription_new_projects.banners
    END AS banners,
    subscription_new_projects.banner_link
    FROM subscription_new_projects
    WHERE be_famous_id =32
    AND now( ) < end_date
    ORDER BY subscription_new_projects_id DESC;
    

    Fiddle demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-07
      • 2023-03-06
      • 2023-04-10
      • 2016-02-07
      • 2021-06-20
      • 2016-12-12
      • 2016-09-29
      • 2018-09-02
      相关资源
      最近更新 更多