【问题标题】: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