mysql - 如何仅在某些情况下应用 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
有没有办法在查询中实现这一点?非常感谢您提前。
解决方案
只要你的表存在。你可以做这样的事情。
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