如果特定字段不为空,mysql将值设置为空
Posted
技术标签:
【中文标题】如果特定字段不为空,mysql将值设置为空【英文标题】:mysql set value to empty if specific field is not empty 【发布时间】: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
知道怎么做吗?
谢谢。
【问题讨论】:
【参考方案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】:使用CASE
statement。
查询
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
【讨论】:
以上是关于如果特定字段不为空,mysql将值设置为空的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 左连接时,查询条件查询某个字段为空或者为特定值解决方案