如果特定字段不为空,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】:

使用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

【讨论】:

以上是关于如果特定字段不为空,mysql将值设置为空的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 左连接时,查询条件查询某个字段为空或者为特定值解决方案

MySQL 左连接时,查询条件查询某个字段为空或者为特定值解决方案

MySQL中查询一个字符串字段的值不为空到底该怎么写?

如何确保至少一个字段不为空?(如果只有一个不为空就可以)

mysql8.0空值已经转为0为什么还是插入不了

如果特定列不为空,则 Google 表格导入范围