首页 > 解决方案 > 如何仅在某些情况下应用 UNION (MySQL)

问题描述

我有以下 - 简化 - 查询:

SELECT id
FROM table_x
UNION ALL 
SELECT 0 AS id

但是,我只想附加 UNION 部分,以防查询的第一部分返回至少 1 个结果,例如:

table_x 有一个条目(id = 1):

table_x: 1
Current and desired result: 1, 0

table_x 为空:

table_x: empty
Current result: 0
Desired result: empty

有没有办法在查询中实现这一点?非常感谢您提前。

标签: mysql

解决方案


只要你的表存在。你可以做这样的事情。

SELECT
IF ( a is NULL, NULL, CONCAT(a,",",b))
FROM(
SELECT
  (SELECT * From myTable WHERE id = 2) a
  ,(SELECT 0) b
  ) C

结果为空

id = 1 的结果将是

IF ( a is NULL, NULL, CONCAT(a,",",b))
1,0

推荐阅读