如果特定字段不为空,mysql将值设置为空

标签 mysql sql database select

我创建了这个 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结果:

enter image description here

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

我想要这样的结果:

enter image description here

我的 SQL fiddle :Example

知道怎么做吗?

谢谢。

最佳答案

您可以使用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

关于如果特定字段不为空,mysql将值设置为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29965624/

相关文章:

MySQL 按日期排序,NULL 在前

sql - 编写整个数据库 SQL-Server 的脚本

sql - Oracle 12c 数据默认值

mysql - MYSQL 表单生成器的数据库设计

java - 删除与 Hibernate 的 OneToMany 关联上的记录

mysql - 保存时 View 会被重写

mysql - JPA NamedNativeQuery 导致 SQL 异常错误代码 1064

linux - 如何以编程方式在 influxdb 中创建数据库和用户?

mysql - LEFT JOIN 四个表产生不需要的结果

php - 如何实现论坛权限