【问题标题】:how to selected data based on condition null or not null mysql 5.7如何根据条件为空或不为空选择数据mysql 5.7
【发布时间】:2020-04-17 06:30:41
【问题描述】:

我有这样的名为 my_table 的表

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

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

所以预期的结果是这样的

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

【问题讨论】:

  • 向我们展示您测试中的任何尝试查询

标签: mysql mysql-select-db


【解决方案1】:

使用COALESCE:

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

如果不是NULLCOALESCE(a, b) 函数将返回 a,否则将回退到返回 b

【讨论】:

  • 我想问先生,如果类型 1 和类型 2 来自 tbl1(对于 type1)和 tbl2(对于 type2),我写的是真的 SELECT product, COALESCE(tbl1.type1, tbl2.type2 ) AS type FROM yourTable, tbl1, tbl2; ?
  • @FachryDzaky 是的,这在我看来是正确有效的。
猜你喜欢
  • 2020-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-08
相关资源
最近更新 更多