首页 > 解决方案 > 如何根据条件为空或不为空选择数据mysql 5.7

问题描述

我有这样的名为 my_table 的表

+------------+-------+-------+
|  product   | type1 | type2 |
+------------+-------+-------+
| Banana     | NULL  | A1    |
| Grape      | NULL  | B1    |
| Watermelon | A     | A1    |
| Orange     | B     | A1    |
+------------+-------+-------+

我想根据他的类型选择产品,如果 type1 NULL 则使用类型 2 的类型,如果不是则使用类型 1

所以预期的结果是这样的

+------------+------+
|  product   | type |
+------------+------+
| Banana     | A1   |
| Grape      | B1   |
| Watermelon | A    |
| Orange     | B    |
+------------+------+

标签: mysqlmysql-select-db

解决方案


使用COALESCE

SELECT
    product,
    COALESCE(type1, type2) AS type
FROM yourTable;

如果不是,该COALESCE(a, b)函数将返回,否则将回退到返回。aNULLb


推荐阅读